{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Modeling and Simulation in Python\n",
    "\n",
    "Bungee dunk example, taking into account the mass of the bungee cord\n",
    "\n",
    "Copyright 2019 Allen Downey\n",
    "\n",
    "License: [Creative Commons Attribution 4.0 International](https://creativecommons.org/licenses/by/4.0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Configure Jupyter so figures appear in the notebook\n",
    "%matplotlib inline\n",
    "\n",
    "# Configure Jupyter to display the assigned value after an assignment\n",
    "%config InteractiveShell.ast_node_interactivity='last_expr_or_assign'\n",
    "\n",
    "# import functions from the modsim.py module\n",
    "from modsim import *"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Bungee jumping"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "In the previous case study, we simulated a bungee jump with a model that took into account gravity, air resistance, and the spring force of the bungee cord, but we ignored the weight of the cord.\n",
    "\n",
    "It is tempting to say that the weight of the cord doesn't matter, because it falls along with the jumper.  But that intuition is incorrect, as explained by [Heck, Uylings, and Kędzierska](http://iopscience.iop.org/article/10.1088/0031-9120/45/1/007).  As the cord falls, it transfers energy to the jumper.   They derive a differential equation that relates the acceleration of the jumper to position and velocity:\n",
    "\n",
    "$a = g + \\frac{\\mu v^2/2}{\\mu(L+y) + 2L}$ \n",
    "\n",
    "where $a$ is the net acceleration of the number, $g$ is acceleration due to gravity, $v$ is the velocity of the jumper, $y$ is the position of the jumper relative to the starting point (usually negative), $L$ is the length of the cord, and $\\mu$ is the mass ratio of the cord and jumper.\n",
    "\n",
    "If you don't believe this model is correct, [this video might convince you](https://www.youtube.com/watch?v=X-QFAB0gEtE).\n",
    "\n",
    "Following the example in Chapter 21, we'll model the jump with the following modeling assumptions:\n",
    "\n",
    "1. Initially the bungee cord hangs from a crane with the attachment point 80 m above a cup of tea.\n",
    "\n",
    "2. Until the cord is fully extended, it applies a force to the jumper as explained above.\n",
    "\n",
    "3. After the cord is fully extended, it obeys [Hooke's Law](https://en.wikipedia.org/wiki/Hooke%27s_law); that is, it applies a force to the jumper proportional to the extension of the cord beyond its resting length.\n",
    "\n",
    "4. The jumper is subject to drag force proportional to the square of their velocity, in the opposite of their direction of motion.\n",
    "\n",
    "First I'll create a `Param` object to contain the quantities we'll need:\n",
    "\n",
    "1. Let's assume that the jumper's mass is 75 kg and the cord's mass is also 75 kg, so `mu=1`.\n",
    "\n",
    "2. The jumpers's frontal area is 1 square meter, and terminal velocity is 60 m/s.  I'll use these values to back out the coefficient of drag.\n",
    "\n",
    "3. The length of the bungee cord is `L = 25 m`.\n",
    "\n",
    "4. The spring constant of the cord is `k = 40 N / m` when the cord is stretched, and 0 when it's compressed.\n",
    "\n",
    "I adopt the coordinate system and most of the variable names from [Heck, Uylings, and Kędzierska](http://iopscience.iop.org/article/10.1088/0031-9120/45/1/007).\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "newton"
      ],
      "text/latex": [
       "$\\mathrm{newton}$"
      ],
      "text/plain": [
       "<Unit('newton')>"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "m = UNITS.meter\n",
    "s = UNITS.second\n",
    "kg = UNITS.kilogram\n",
    "N = UNITS.newton"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>values</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>v_init</th>\n",
       "      <td>0.0 meter / second</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>g</th>\n",
       "      <td>9.8 meter / second ** 2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>M</th>\n",
       "      <td>75 kilogram</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>m_cord</th>\n",
       "      <td>75 kilogram</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>area</th>\n",
       "      <td>1 meter ** 2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>rho</th>\n",
       "      <td>1.2 kilogram / meter ** 3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>v_term</th>\n",
       "      <td>60.0 meter / second</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>L</th>\n",
       "      <td>25 meter</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>k</th>\n",
       "      <td>40.0 newton / meter</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "v_init           0.0 meter / second\n",
       "g           9.8 meter / second ** 2\n",
       "M                       75 kilogram\n",
       "m_cord                  75 kilogram\n",
       "area                   1 meter ** 2\n",
       "rho       1.2 kilogram / meter ** 3\n",
       "v_term          60.0 meter / second\n",
       "L                          25 meter\n",
       "k               40.0 newton / meter\n",
       "dtype: object"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "params = Params(v_init = 0 * m / s,\n",
    "                g = 9.8 * m/s**2,\n",
    "                M = 75 * kg,                # mass of jumper\n",
    "                m_cord = 75 * kg,           # mass of cord\n",
    "                area = 1 * m**2,            # frontal area of jumper\n",
    "                rho = 1.2 * kg/m**3,    # density of air\n",
    "                v_term = 60 * m / s,        # terminal velocity of jumper\n",
    "                L = 25 * m,                 # length of cord\n",
    "                k = 40 * N / m)             # spring constant of cord"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now here's a version of `make_system` that takes a `Params` object as a parameter.\n",
    "\n",
    "`make_system` uses the given value of `v_term` to compute the drag coefficient `C_d`.\n",
    "\n",
    "It also computes `mu` and the initial `State` object."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "def make_system(params):\n",
    "    \"\"\"Makes a System object for the given params.\n",
    "    \n",
    "    params: Params object\n",
    "    \n",
    "    returns: System object\n",
    "    \"\"\"\n",
    "    M, m_cord = params.M, params.m_cord\n",
    "    g, rho, area =  params.g, params.rho, params.area\n",
    "    v_init, v_term = params.v_init, params.v_term\n",
    "    \n",
    "    # back out the coefficient of drag\n",
    "    C_d = 2 * M * g / (rho * area * v_term**2)\n",
    "    \n",
    "    mu = m_cord / M\n",
    "    init = State(y=0*m, v=v_init)\n",
    "    t_end = 10 * s\n",
    "\n",
    "    return System(params, C_d=C_d, mu=mu,\n",
    "                  init=init, t_end=t_end)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's make a `System`"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>values</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>v_init</th>\n",
       "      <td>0.0 meter / second</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>g</th>\n",
       "      <td>9.8 meter / second ** 2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>M</th>\n",
       "      <td>75 kilogram</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>m_cord</th>\n",
       "      <td>75 kilogram</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>area</th>\n",
       "      <td>1 meter ** 2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>rho</th>\n",
       "      <td>1.2 kilogram / meter ** 3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>v_term</th>\n",
       "      <td>60.0 meter / second</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>L</th>\n",
       "      <td>25 meter</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>k</th>\n",
       "      <td>40.0 newton / meter</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>C_d</th>\n",
       "      <td>0.3402777777777778 dimensionless</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mu</th>\n",
       "      <td>1.0 dimensionless</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>init</th>\n",
       "      <td>y               0 meter\n",
       "v    0.0 meter / secon...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>t_end</th>\n",
       "      <td>10 second</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "v_init                                   0.0 meter / second\n",
       "g                                   9.8 meter / second ** 2\n",
       "M                                               75 kilogram\n",
       "m_cord                                          75 kilogram\n",
       "area                                           1 meter ** 2\n",
       "rho                               1.2 kilogram / meter ** 3\n",
       "v_term                                  60.0 meter / second\n",
       "L                                                  25 meter\n",
       "k                                       40.0 newton / meter\n",
       "C_d                        0.3402777777777778 dimensionless\n",
       "mu                                        1.0 dimensionless\n",
       "init      y               0 meter\n",
       "v    0.0 meter / secon...\n",
       "t_end                                             10 second\n",
       "dtype: object"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "system = make_system(params)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "`drag_force` computes drag as a function of velocity:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "def drag_force(v, system):\n",
    "    \"\"\"Computes drag force in the opposite direction of `v`.\n",
    "    \n",
    "    v: velocity\n",
    "    \n",
    "    returns: drag force in N\n",
    "    \"\"\"\n",
    "    rho, C_d, area = system.rho, system.C_d, system.area\n",
    "\n",
    "    f_drag = -np.sign(v) * rho * v**2 * C_d * area / 2\n",
    "    return f_drag"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Here's drag force at 20 m/s."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "-81.66666666666667 kilogram meter/second<sup>2</sup>"
      ],
      "text/latex": [
       "$-81.66666666666667\\ \\frac{\\mathrm{kilogram} \\cdot \\mathrm{meter}}{\\mathrm{second}^{2}}$"
      ],
      "text/plain": [
       "-81.66666666666667 <Unit('kilogram * meter / second ** 2')>"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "drag_force(20 * m/s, system)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The following function computes the acceleration of the jumper due to tension in the cord.\n",
    "\n",
    "$a_{cord} = \\frac{\\mu v^2/2}{\\mu(L+y) + 2L}$ "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "def cord_acc(y, v, system):\n",
    "    \"\"\"Computes the force of the bungee cord on the jumper:\n",
    "    \n",
    "    y: height of the jumper\n",
    "    v: velocity of the jumpter\n",
    "    \n",
    "    returns: acceleration in m/s\n",
    "    \"\"\"\n",
    "    L, mu = system.L, system.mu\n",
    "    \n",
    "    a_cord = -v**2 / 2 / (2*L/mu + (L+y))\n",
    "    return a_cord"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Here's acceleration due to tension in the cord if we're going 20 m/s after falling 20 m."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "-3.6363636363636362 meter/second<sup>2</sup>"
      ],
      "text/latex": [
       "$-3.6363636363636362\\ \\frac{\\mathrm{meter}}{\\mathrm{second}^{2}}$"
      ],
      "text/plain": [
       "-3.6363636363636362 <Unit('meter / second ** 2')>"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y = -20 * m\n",
    "v = -20 * m/s\n",
    "cord_acc(y, v, system)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now here's the slope function:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "def slope_func1(state, t, system):\n",
    "    \"\"\"Compute derivatives of the state.\n",
    "    \n",
    "    state: position, velocity\n",
    "    t: time\n",
    "    system: System object containing g, rho,\n",
    "            C_d, area, and mass\n",
    "    \n",
    "    returns: derivatives of y and v\n",
    "    \"\"\"\n",
    "    y, v = state\n",
    "    M, g = system.M, system.g\n",
    "    \n",
    "    a_drag = drag_force(v, system) / M\n",
    "    a_cord = cord_acc(y, v, system)\n",
    "    dvdt = -g + a_cord + a_drag\n",
    "    \n",
    "    return v, dvdt"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "As always, let's test the slope function with the initial params."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(0.0 <Unit('meter / second')>, -9.8 <Unit('meter / second ** 2')>)"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "slope_func1(system.init, 0, system)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We'll need an event function to stop the simulation when we get to the end of the cord."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "def event_func(state, t, system):\n",
    "    \"\"\"Run until y=-L.\n",
    "    \n",
    "    state: position, velocity\n",
    "    t: time\n",
    "    system: System object containing g, rho,\n",
    "            C_d, area, and mass\n",
    "    \n",
    "    returns: difference between y and -L\n",
    "    \"\"\"\n",
    "    y, v = state   \n",
    "    return y + system.L"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can test it with the initial conditions."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "25 meter"
      ],
      "text/latex": [
       "$25\\ \\mathrm{meter}$"
      ],
      "text/plain": [
       "25 <Unit('meter')>"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "event_func(system.init, 0, system)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "And then run the simulation."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'A termination event occurred.'"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "results, details = run_ode_solver(system, slope_func1, events=event_func)\n",
    "details.message"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Here's how long it takes to drop 25 meters."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "2.2118255911654763"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "t_final = get_last_label(results)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Here's the plot of position as a function of time."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAagAAAEYCAYAAAAJeGK1AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjAsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+17YcXAAAgAElEQVR4nO3dd3hUVf7H8ffMpDcIIRAglNAOhN6LdPSn2Ova+6rromLvvaJY1sbaddW1rN21F4ooHaTDofeEEnoSQtrvjxvYGEMYNDN3Jvm8nmceMufeyf0mz9VPzr3nnuMpLS1FREQk1HjdLkBERKQyCigREQlJCigREQlJCigREQlJEW4XEGjGmGigF5AFFLtcjoiI/JYPaATMsNYWlN9Q4wMKJ5wmuV2EiIhUaSDwc/mG2hBQWQD//ve/SUtLc7sWEREpJzs7m3PPPRfK/l9dXm0IqGKAtLQ00tPT3a5FREQq97tbMBokISIiIUkBJSIiIUkBJSIiIUkBJSIiISlsBkkYY7oALwCdgZXAJdbaGe5WJSIigRIWPShjTBTwGfA+UBd4CPjOGJPkamEiIhIw4dKDGgJEWmv/Ufb+PWPMVcCZwMuBPHBpaSlL124nv6CIyAgfkRFeIiO8RPi8B74u3+7zevB4PIEsSUSkVgiXgMoEFldoWwJ0CvSBZyzexAOvTvN7f48HIsvCKyLCS3Skj8T4KOrER5OU4PxbJyGKpLJ/D7xPiCY+JkLhJiJSJlwCKgHIq9CWB8QF+sCt0+syqFsTduwuoLCohMKiYoqKSyksKi57X/Yqdv4tKSllX1EJ+4pKDnyPzdvz/TpWhM9DUvz/wis5MYaGKXE0SoknLSWeRvXjSU6MVoiJSK0QLgGVC8RWaIsD9gT6wPWSYrjpvJ5+719c4oRXUVlwFRQWsyt3Hzv3FLBzzz525Tr/7sz97ftduQXkFxSzbVcB23YVHPT7R0f5SKsXdyCw0lLinQCrH0eD5DgifGFxW1FE5JDCJaAWAddVaGsHvOlCLVXyeT34oiIg6n9taSnxfn12X2HxgfDalbuPbTvzycrJI3trLlk5uWTn5LI7r5A12btZk737d5/3ej2k1o2lUUo86Q0SaNmkDi2b1KFZWhKREQouEQkv4RJQ4wGPMeY64DngNJzh5p+4WlU1i4r0kZocS2pyxc7i/+zJL/xNYGVtzSU7J4+snFxyduazaVsem7blMWfZlgOfifB5aNYw6UBgtWxSh4zGScTFRAbjxxIR+UPCIqCstfuMMSNwnoO6H1gNnGyt3VLlB2ughNhIWjetS+umdX+3rbComOycPLJzclmbvZuVG3ayYsNONm7dw8qNO1m5cSeUe3KsUf14WjapQ6tywZWcGBPEn0ZE5ODCIqAArLULgAFu1xHKIiN8NG2YSNOGifTK/N/SIvkFRazeuIuVG3awYoMTVGuydpO11emB/TJ344F96yVFY5rXo2PLFDq2qk+LRkl4vRqUISLBFzYBJX9cbHQE7TPq0T6j3oG2wqIS1m/ezYr1TmCt3OC8tu0qYMr8LKbMd5ZmiY+NpENGCh1bOa+Wjevg00AMEQkCBVQtFRnhJaNxHTIa1znQVlJSSnZOLotW5TB/RQ4LVmxl8/Z8pi/KZvqibMAJu8yMenRsVZ+OrVJonV5XIwdFJCAUUHKA1+uhcWoCjVMTOLJ3cwA2b8tjwcqtLFiRw4IVOWTl5DJryWZmLdkMQEyUj3Yt6jk9rJb1Mc2TFVgiUi0UUFKlBvXiGFavGcN6NgMgZ2f+gd7VghU5bNiyhzlLtzBnqTNeJT4mgh7tGtKrQxo92zUgIS6qqm8vInJQCig5LCl1YhnSPZ0h3dMB2L5rLwtWOoE1b/lW1m/ew09zNvDTnA14vR46ZKTQu0NDemem0Tg1weXqRSScKKDkT0lOimFg1yYM7NoEgKytuc49q4XZLFyZw/wVW5m/Yiuvfr6QJqkJ9O6QRu/MhrRvUU+DLUSkSgooqVaN6sdz0qBWnDSoFXvyC5m9ZBPTF25i1pJNbNiyh08mLOeTCctJjIukR3unZ9XdNCA+Vg8Ni8hvKaAkYBJiIxnULZ1B3dIpLi5h0eptTF+YzYxF2WzYksuEWeuZMGs9Pq+HTq3qM6BrE47o0pgEhZWIoICSIPH5vHRqVZ9Orepz6YkdWb95N9MXbmL6omwWr8phzrItzFm2hRc+nkevzIYM6Z5Oz/YNiYr0uV26iLhEASWuSG+QSHqDRE4d2prdefuYtiCbibPXM3f5lgMPCsfHRNC/c2OG9mhKh5YpmtFCpJZRQInrEuOiOLJ3M47s3YycnflMmrOB8bPWs3LDTr6fvpbvp6+lfp0YBnVLZ0iP9N88XCwiNZcCSkJKSp1YTh7cmpMHt2bdpt1MmL2eCbPXs3lbHh9PWM7HE5bTPC2Rwd3TGdw9nQbJAV+zUkRcooCSkNW0YSLnj2jPece0Y/HqbUyYvZ6f52xgTfZu3vxqMW9+tZgOLVMY2iOdgV2baPkQkRpGASUhz+PxkJmRQmZGCped1Ilf7WbGz1p34FmrhStzePXzhQzr2ZQR/VvQPC3J7ZJFpBoooCSsREZ4nYd9O6SRt7eQKfOz+G7aGhat2saXv6ziy19W0aFlCsf1z6Bvp0ZaSVgkjCmgJGzFxUQyvFczhvdqxuqsXXw1eRUTZq070KuqmxjN//VpztF9m+telUgYUkBJjdCiURJ/P60LFx2XyYTZ6/l68mpWZ+3iPz8s5cMfl9IrM41j+2fQtW2qhquLhAkFlNQocTGRHNs/gxH9WrBo1Ta+mryKyfM2Mm1hNtMWZtMoJZ5j+rXgyN7NSIrXTOsioUwBJTWSx+OhQ8sUOrRMYfvuvfwwfS3fTFlNVk4ur3+xkLe/WczArk047ogM2jZLdrtcEamEAkpqvOTEGM4Y3pZTh7Zh1pJNfPXLKmbbzYybuY5xM9fRqVV9Th/Whm4mFY9Hl/9EQoUCSmoNn9dD78w0ememkZ2Ty9eTV/PN1NUHlgRp2bgOpw9rQ//OjbQUiEgIUEBJrZSWEs/FJ3TgL0e25Zspq/nspxWs3LiTx96eSaOUeE4Z0orhvZppsloRFymgpFaLj43ktGFtOGFgS8bNXMfH45eTlZPL2I/m8c53lhMHtuTY/hlar0rEBQooESAq0scx/VpwVJ/mTJ63kQ/HLWPlhp28+dViPhy3jBH9WnDSoFYkJ8W4XapIraGAEinH5/UwsGsTBnRpzJylW/hw3DLmLd/KR+OX8/mklQzv1YxThrSicf0Et0sVqfEUUCKV8Hg8dDMN6GYasHTtdj4ct4ypC7L4Zspqvpu6mv6dG/OXI9tq6Q+RAFJAiRxC22bJ3H5Rb9Zt2s3H45czYfY6fp67kZ/nbmRg1yace0w7mqSqRyVS3TSWVsRPTRsmMuqsbrx8+1GcOLAlkRFeJs3ZwN8fG8ez/5nDlu35bpcoUqMooEQOU/26sVx2cidevPVI/q9PcwC+m7aGK0b/wCufLWDnngKXKxSpGRRQIn9QanIsV/+lK2NvHsbArk0oLCrhs59WcNnD3/Pvb5aQm1/odokiYU0BJfInNUlN4Obze/L09UPo2b4h+QXFvPe95bKHv+fj8cspKCx2u0SRsBQWgySMMW8CfwGKyjV3ttaudKkkkd9p2aQO9/y1LwtX5vDW14tZuDKH179YyGc/reCs/zMc1bsZEZpCScRvYRFQQHfgZGvtN24XInIoHVqm8Mjfj2C23cybXy1m5YadjP1wLp+MX845x7RjUNcmWpNKxA8hH1DGmFigHTDH7VpE/OXxeOjRriHd2jZg8vyNvP31EjZs2cMT/57FR+OWceFxmfRs39DtMkVCWkgElDEmCqhXyaZSoCXOpb2XjTF9gXXA3dbaL4JYosgf4vV6GNClCf06NmLczHW8851lddYu7ntlKj3bN+SykzrSWM9QiVQqVC6I9weyKnltABKBScB9QGPgIeA/xpgu7pQqcvh8Pi9H9WnOS7cN55ITOhAbHcHMxZsYOWYcr/93IXl7NeJPpKKQ6EFZaycAVV2U/67c1x8ZYy4GTgTmBrIukeoWGeHjlCGtGdIjnbe+WswPM9by8YTljJu1jguPzWRYz6a6PyVSJlR6UAdljDnBGHNhheYoYK8b9YhUh+TEGK45sxtPjBpEu+bJ7NhdwNPv/8pNz/6EXbPN7fJEQkJI9KAOwQc8bYxZDMwCzsS5JPhXV6sSqQZtmibz2NUDmTB7PW98sYila3dw4zOTGNojnQuPyySlTqzbJYq4JuR7UNbaT4E7gHeBXcANwPHW2rWuFiZSTTweD0N7NOWFW4dzxvA2RPi8jJ+1nisf/ZEPflxKYZEe9JXayVNaWup2DQFljGkBrPrxxx9JT093uxyRQ8ramsurny9g2sJsABqlxHPpiR3o3SENj0f3p6RmWb9+PcOHDwfIsNauLr8t5HtQIrVNo/rx3HlJH+6/vB9NGyaQlZPLg69P556XprBu0263yxMJGgWUSIjqZhrwzA1DueykjsTHRPDr0i1c/fh43vhioeb3k1pBASUSwiJ8Xk4c1IoXbzuSY/q1oKS0lI/GL+fqMeOZu2yL2+WJBJQCSiQM1EmIZuTpXRhz9UCapyWSlZPLnS9M5pn3f2VP3j63yxMJCAWUSBgxzevx1HVDOO+YdkT4vHw/fS1XPjaOSXM2UNMHPEnto4ASCTOREV7OPMrwzA1D6NAyhR27C3jsrZk8+Np0tu7QsvNScyigRMJU04aJPHzlEfz99C7ExUQwfVE2f39sHF/+soqSEvWmJPwpoETCmNfrYUS/Foy9eRh9O6aRX1DECx/P49bnf2Zt9i63yxP5UxRQIjVASp1Y7ri4D7dd2IvkxGgWr97GqCcn8O63SzQThYQtBZRIDdK/c2PG3jKco/s2p6i4lHe+s4x6ciKLV2kCWgk/CiiRGiYhNpKrzujKw1ceQeP68azbtJtbnp/ECx/PI7+gyO3yRPymgBKpoTq1rs8zNw7ljOFt8Ho8fPnLKkY9OYElWs5DwoQCSqQGi470ccGxmTx13WBaNEoia2sutzw7ibe/WUxRcYnb5YlUSQElUgtkNK7Dk9cO4tQhrSkF3v9+KTc/O4n1mzX5rIQuBZRILREZ4ePiEzrw0N+OIDU5lmXrdjDqyYl8NXmVZqGQkKSAEqllOrWuz7M3DGVoj3T2FRbzz4/mcd8rU9m2a6/bpYn8hgJKpBaKj43k+nN6cMsFPUmIjWTWks1cNWY8U+ZvdLs0kQMUUCK12IAuTXjupqF0a5vK7rx9PPzGDJ5+71fy9ha6XZqIAkqktkupE8u9l/Xj8pM7ERXh5YcZa7n6iQksXJnjdmlSy0X4u6MxpiHQA2gAFAPZwGxrrc5ikTDn9Xo4YWBLurSpzxPvzGblhp3cNvZnThvahnOObkdkhP6WleCrMqCMMRHAOcC1QBdgH7Ad8AH1yvaZBowF3rPW6sEKkTDWLC2Jx68ZxLvfLeGjccv4cNwyZtvN3HBOd5qlJbldntQyB/2zyBgzGJgHXAC8CrQF4qy1ja21DYEooBvwDnAVsMQYMyTgFYtIQEVGeLng2EweGTmAhvXiWLlhJ9c9NZHvpq3RcHQJqqp6UDcAZ1pr51e20VpbCiwoe401xnQD7gcmVHeRIhJ8mRkpPHPDEF7+dAE/zFjLs/+Zw8KVOVx5amdiov2+OyDyhx30LLPWnng438ha+ytwwp+uSERCRlxMJKPO6kan1imM/Wge42auY9m6Hdx2YS+aNkx0uzyp4Q5nkEQckAFEV9xmrZ1dnUWJSGgZ1rMZrdLr8uibM1i3aTfX/WMiI0/vwtAeTd0uTWowv4bmGGPOAzbj3JOaWeE1I2DViUjIaJ6WxBOjBjOkezoF+4p58p3ZPPfBHAoKtSCiBIa/Y0cfwRko0RJoVOHVODCliUioiY2O4PpzunPVGV2IjPDy7dQ13PTMT2zcssft0qQG8vcSXxLwnLV2TSCLEZHQ5/F4OLpvC9o0TWb0mzNYtXEX1z41kWvO7MqALk3cLk9qEH97UG8BFwWwDhEJMy2b1OGpawdzROfG5BcU8eibM3nx43kUFumSn1QPf3tQY4DZxphzgdXAbx7ItdYOq+a6RCQMxMdGcssFPfni51W89t8FfPHLKpas3c4t5/ckLSXe7fIkzB1OD2oP8CXOoIhZFV4iUkt5PM40SY9eNZAGybEsX7eDa5+ayNQFWW6XJmHO3x5UL6CPtXZeIIsRkfDVtlkyT18/hKfe/ZXpi7J56PXpnDy4FRcel0mET3P5yeHz96yxQN1AFrKfMeY6Y8ynFdqaGWO+N8bsNsasMMYcG4xaROTwJMRFceclvbnkhA54vR4+nbiC28f+wnYthih/gL89qEeAN4wxzwErgN8sFmOt/erPFmKMSQDuwZli6fMKm98DpgDHAQOAT40xXa21K//scUWkenk8Hk4Z0hrTPJnH3prJ4tXbuP4fE7nj4j60bhqUv3OlhvC3B/Uu0AJ4HPgE+KLc67/VVMuXODNVvFi+0RjTFugJ3G2t3WetHYcTYJdW03FFJAAyM1J46trBtG9Rj60793LLc5OYOHu922VJGPGrB2Wt/dMXkI0xUZQt0VFBqbV2E3C2tXajMeZenAeA98sE1lprc8u1LQF6/9maRCSwkpNieOjK/vzzo3l8P30tj/97FquzdnHeiPb4vB63y5MQd6jlNg6LMaaq4eb9gaxKXhsArLUbD/K5BCCvQlseEHe49YlI8EVG+Lj6L125/OROeL0ePhy3jAdfm6Zl5eWQqupBXWeMuRV4BvjBWlvp2VS2qOHxOGtC5QHjKtvPWjsB+CN/MuUCsRXa4nCGvYtIGNg/FL1Zw0RGvzmDmYs3ceMzP3HnxX1onJrgdnkSoqpabuNkY8wpwGiguTFmArAQ2IoTNKk4q+z2A9YCD1hrPwxAjYuAZsaYWGttfllbu7J2EQkjXdqm8uS1g3nw9Wmszd7N9U//xC3n96SbaeB2aRKCqry3ZK39xFrbBTgZWIoTRn8FLsYZuDAPONFa2yVA4YS11gJzgYeMMdHGmKHASTgr+YpImGlUP54xVw+kT4c0cvMLufflKXw6cYVW65Xf8XeQxATcXSn3NOAlnCU/tgKXWmsXuFiPiPwJcTGR3H5Rb975dgnv/7CUVz9fwOqsnYw8vQuRET63y5MQEXLrNltr762kbR0wIvjViEigeL0ezhvRnuaNkvjHe7/y44x1rN+8h9sv6k29pBi3y5MQoPlHRMRVA7s24bGrBlC/bix2zXau/8dElq7d7nZZEgIUUCLiulbpdXnq2sFkZtQjZ+debnv+Zybood5aTwElIiGhbmI0D/7tCI7u25x9RSU88e9ZvPnVIkpKNHiitvL7HpQxpgHQGYikwvNM1TEXn4hIZISXkad3IaNREi99toAPflzGpm15XHtWNw2eqIX8CihjzKXAWJxwqqgU0JkjItXC4/Fw3ICWNKqfwOg3p/PTrxvYtmsvd1zUm4S4KLfLkyDy9xLfTcDLQB1rrbfCS+EkItWue7sGjB45kHpJ0SxYkcPNz/3M5m0VZz2TmszfgGoKPG2t3R3IYkREymvZpA5jrhlEs7RE1m3azU3P/sSK9TvcLkuCxN+A+g4YHshCREQq0yA5jkevGkinVvXZtquA28b+zOwlm90uS4LA30ESc4EnjTEn4kx5tK/8RmvtzdVdmIjIfgmxkdx3eV+efm8OE39dz32vTmXk6V34vz7N3S5NAsjfgBoMTMOZVbxLhW0aAyoiARcZ4eP6c7rToF4sH/y4jGf/M4ct2/M552iDx6O1pWoif+fiGxroQkREDsXr9XDBsZmk1o3lhY/n8d73ls3b87jqjK5ERuixzprmcJ6Daoiz5lMHnHtXi4GXrbUrA1SbiEilRvTPIKVuLI+9NZNxM9exbedebruoF3ExlT0JI+HKrz85jDG9ce49nYIzm/gWnEUK5xljegauPBGRyvXOTOORvx9B3YRo5izbwi3P/UzOzvxDf1DChr994ieAd4FO1trLrbWXWWs7AW8AYwJVnIhIVdo0TWbMNQNpkprA6qxd3Pj0T6zO2uV2WVJN/A2onsBT1tqKAyKeBXpVb0kiIv5LS4nnsasH0r5FPbbu3Mstz01i7tItbpcl1cDfgMoCWlTS3hLQw7si4qqk+Cge/Ft/jujSmLy9Rdz7yhTNhl4D+DtI4i3gJWPMtcDUsrZ+wFNl20REXBUV6ePm83ryet2FfDpxBU++M4v8vYWM6J/hdmnyB/kbUA8BjYH/4PS6PEAhziW+OwJTmojI4fF6PVx6YkfqJETzry8XMfajeeTuLeL0YW3cLk3+AH+fg9oHXGaMuREwQD6w3FqrITMiEnJOH9aGuJgIXvh4Hv/6chF5ews5f0R7PdAbZg4aUMaYY4HvrbWFZV9X1NQYA2g9KBEJPcf2zyAuOoKn3vuVD35cRt7eIi4/uRNer0IqXFTVg/oCSAM2l319MFoPSkRC0pAeTYmNjuDRt2by5S+ryNtbyKgzu+HzadaJcHDQgLLWeiv7WkQknPTp2Ih7Lu3Lg69PY/ys9eQXFHHz+T21Qm8Y8HcmiXHGmLqVtKcaY2ZVf1kiItWnS9tUHvhbf+JjI5m6IJv7X5nG3oIit8uSQ6jqHtQQILPs7WDgCmNMxWee2gOtAlOaiEj1ade8Ho/8/QjufmkKc5Zt4a4XJ3PPZf1IiNX8faGqqntQOcCNOEPKPcBIoLjc9lJgD3BDwKoTEalGGY3r8OjIAdz54mSWrNnO7WN/5v7L+1M3Mdrt0qQSVd2Dmo8zUwTGmPHAqdba7cEqTEQkEBqnJjB65ADufnEyqzbu4tbnJ/HAFUeQmhzrdmlSwUHvQRlj4sq9PQ4oMMbEVfYKfJkiItWnQXIcj4wcQEbjJDZsyeWW5yexccset8uSCqoaJLHbGNOg7Os9OHPuVXztbxcRCSvJiTE8fOURtGuezJbt+dzy/M+s2rjT7bKknKoCahiwrezroWXvK772t4uIhJ2EuCjuv6I/XduksmN3AbeN/YUla7Yd+oMSFFXdg5pY2dcAxpgooDOw1FqrxVdEJGzFRkdw16V9GPP2TKYuyOauFyZz91/70qlVfbdLq/X8fQ6qtTFmojGmb9k9p+llrzXGmL4BrVBEJMCiIn3cekEvhvZIZ+++Yu57ZSrzV2x1u6xaz98ZIp7Fude0GjgfSMeZNPafwJPVWZAx5jpjzKcV2oYZY4qNMXvKve6qzuOKSO3m83kZdVZ3hvVsSkFZSC1QSLnK34AaCFxnrc0GTga+tNYuA14GulZHIcaYBGPMGJzl5SvqDnxgrU0o93qgOo4rIrKfz+vhmjO7/SakFq7McbusWsvfgNoLRBpj4nFmlfi6rD0NqK5hL18CGcCLlWzrAcyppuOIiBzU/pDaf7nv3penKKRc4u+Chd/i9JZ2A3nAf40xw4Gngc/9+QZlAyvqVbKp1Fq7CTjbWrvRGHMv0KjCPt2BVGPMlTizWrwP3GmtLfCzfhERv/m8Hkad1R2A8bPWc98rU7j3sn5kZqS4XFnt4m8P6gpgJk5P6jhrbS7QC5gAXOvn9+gPZFXy2gBgrd1Y2YeMMRHAeuATnLn/hgFHArrEJyIBsz+khvRIJ7/A6UktWqWeVDD5u6LuHmAUgDEmyRhT11o7+nAOZK2dgNP7OSzW2iJgeLmm5caYh4BHgZsP9/uJiPjL5/Vw7VndKS2Bib+u596Xp3DfZf1pn1HZxSCpbn6v82SMudIYsw7YDuQYY7KMMbcGrrQDx21ijHm87BLhflE4vTkRkYDyeT1cd3Y3BnVrQn5BMfe8PIUlq/UwbzD4+xzUjcBonOHmA4FBwFPAzcaYUYErD3BmVT8XuNMYE2GMaQPcCbwe4OOKiADOEPTrz+7OoK5NyC8o4u6XFFLB4G8PaiTwN2vtY9baydbaX6y1jwFXAlcFrjyw1u4FRuCEYg7wE/AB1fz8lYhIVXw+L9efUyGkNC1SQPk7ii8VmFFJ+yych3arjbX23kra5gBDqvM4IiKHa39IlQKT5mzgnpemcP/l/TDNdU8qEPztQS0Azqik/UxgSfWVIyIS2nw+Lzec050BXRqTt9fpSS1dq6XyAsHfHtTdwJfGmH7AlLK2fsAxwKmBKExEJFT5fF5uPLcHpcAvczdy94uTuf+K/rRtlux2aTWKXz0oa+13OEO9C3Dm4jsd2AX0stZ+EbjyRERC0/6QOqJzY3L3FnH3i5PVk6pm/vagsNb+hDNAQUREgAiflxvP60Hp26VMnpfF3S9O5uG/D6Blkzpul1YjVLnkuzHmJWPMtrJnnsYaY5KCWZyISKiL8Hm56bye9OvUyOlJvTSZDVo+vlpUdYnvPuAE4DGcId3H4czHJyIi5Tgh1YNubVPZuWcfd74wmS3b890uK+xVFVCnA+dYa0dba8fgjOI7yRgTGZzSRETCR2SEj9sv6k37FvXYuiOfu16czI7dms/6z6gqoNL57RDyGWX7NwxoRSIiYSomOoK7L+1Di0ZJbNiyh3tenkJufqHbZYWtqgLKBxTvf2OtLcUZxRd10E+IiNRyCXFR3H9FPxrVj2flhp088No09u4rcrussOT3ZLEiIuKf5MQYHryiPyl1Yli4MofR/5pBYVGJ22WFnUMNM7/IGFN+OEoEcJ4xZmv5nay1Y6u9MhGRMNagXhwPXNGfW5//mVlLNvPUu7O54dwe+LyHvepQrVVVQK3FmQy2vGzg4gptpYACSkSkgqYNE7nvsn7c/s9fmDRnA3ExEYw8vQsej0LKHwcNKGttiyDWISJSI7VuWpe7Lu3DvS9N4dupa0iIjeSi4zu4XVZY0D0oEZEA69SqPrdc2Auf18NH45fzwY9L3S4pLCigRESCoHdmGted3R2PB978ajFfT17ldkkhTwElIhIkg7unc+WpnQH458fzmDh7vcsVhTYFlIhIEI3on8EFx7antBSeenc2MxZlu11SyFJAiYgE2enD2nDqkNYUl5Qy+l8zWLBi66E/VAspoEREgszj8XDR8Zkc3bc5+4pKeOC1aSxfv8PtskKOAkpExAUej4crT+tyYOn4e16awsatWsEDzdUAAA8wSURBVKajPAWUiIhLfF4P15/Tg+6mAbty93Hvy1PZuUczoO+ngBIRcVFkhJdbLuhJy8Z1yNqaq8lly1FAiYi4LC4mkrv/2ofU5Fjsmu08+c5siktK3S7LdQooEZEQkFInlnv+2pf4mAimzM/i1c8XUFpau0NKASUiEiKapyVxx8V9iPB5+e+klXz20wq3S3KVAkpEJIR0al2fa8/qBsCrny/k57kbXK7IPQooEZEQM7h7OhcelwnAk+/MZuHKHJcrcocCSkQkBJ02tDUj+regsKiEB1+bxrpNu90uKegUUCIiIcjj8XDFyZ3onZnGnvxC7n1lKtt373W7rKBSQImIhCifz8tN5/WgTdO6bN6Wx/2vTmNvQe15RkoBJSISwmKiI7jr0j40rBfH8nU7ePStmRQXl7hdVlCETEAZY0YZY1YaY3YaY6YbYwaW29bMGPO9MWa3MWaFMeZYN2sVEQmm5MQY7r2sL4lxkcxcvIkXPplfK56RComAMsacCtwMHA8kA/8EvjDGpJbt8h4wD0gBLgPeM8a0dKNWERE3pDdI5M5L+hAZ4eWbKav5cNwyt0sKuJAIKKAR8LC1dpG1tsRa+zpQDHQyxrQFegJ3W2v3WWvHAZ8Dl7pYr4hI0GVmpHDDuT0OLBs/YdY6t0sKqIhgHcgYEwXUq2RTqbX2+Qr7DgISgIVAP2CttTa33C5LgN6BqlVEJFQd0bkxl57YkVc+W8DT7/9KclIMXdqkHvqDYSiYPaj+QFYlr988Jm2M6Qi8D9xprd2EE1R5Fb5XHhAX6IJFRELRSYNaceKglhQVl/LIG9NZk7XL7ZICImg9KGvtBMBT1T7GmOOBt4DR1trHyppzgdgKu8YBWtlLRGqtS0/oyNYd+Uyel8V9r07lyVGDqZsY7XZZ1SpU7kFhjBkFvAv81Vr7aLlNi4BmxpjyIdWurF1EpFbyli12aJols2V7Pg+/MZ3ComK3y6pWIRFQxpi/AA8DR1prPyq/zVprgbnAQ8aYaGPMUOAk4J3gVyoiEjqiI33ccXFv6teJYfHqbYz9cF6NGn4eEgEF3ApEAz8aY/aUex1ftv00oD2wGXgFuNRau8ClWkVEQkZyUgx3XNKHqEgfP8xYW6OW6AjaPaiqWGu7H2L7OmBEkMoREQkrrdPrct3Z3Xj0zZm8/t+FpDdIpGf7hm6X9aeFSg9KRET+hAFdmnD2/xlKSmHM2zNrxOznCigRkRrirKMMR3RuTN7eIh54dRq7cve5XdKfooASEakhvF4P157VjZZN6pCVk8ujb86gKIwnllVAiYjUIDHREdx5cR/qJkYzb/lWXv50vtsl/WEKKBGRGiY1OZY7Lu5NZISXryav5qvJq9wu6Q9RQImI1EDtmtfjqjO6AvDiJ/OZu2yLyxUdPgWUiEgNNaxnU04b2pqSklJG/2sGG7eG1wxxCigRkRrs/GMz6ZXZkD35hTz42jRy8wvdLslvCigRkRrM5/Vw47k9aJaWyLpNexjz9kyKS8JjOiQFlIhIDRcXE8ldl/QhMS6KWUs288YXC90uyS8KKBGRWiAtJZ7bLuqFz+vh04kr+GH6WrdLOiQFlIhILdGpVX2uPK0zAM9/OJdFq3JcrqhqCigRkVrk6L4tOH5ABkXFJTzyxgw2b6u4YHnoUECJiNQyfz2xI13bpLJjTwEP/2s6BYWhudChAkpEpJbx+bzcckFP0lLiWLF+Jy9+PM/tkiqlgBIRqYUS4qK47cLeREV4+X76Wr6dusbtkn5HASUiUku1bFKHkWd0AeCFj+exdO12lyv6LQWUiEgtNqxnM0b0b0FRcQmj35zBzj0Fbpd0gAJKRKSWu+ykjrRtVpct2/N54t+zQmamCQWUiEgtFxnh49YLepMUH8WvS7fw7rdL3C4JUECJiAjOGlI3n9cTrwfe/2Ep0xdmu12SAkpERBxd2qZy3oj2ADz5zizXl+dQQImIyAGnD2tD345p5O4t4pE3ZrB3X5FrtSigRETkAI/Hw7Vndadx/XhWZ+1i7IdzKS11Z9CEAkpERH4jPjaS2y/qTXSUj/Gz1vP1lNWu1KGAEhGR32neKImrz+gKwMufzmfJmm1Br0EBJSIilRrcPZ0TBrakqLiU0f+awY7dwX2IVwElIiIHdfHxHWjfoh45O/c6y8UXlwTt2AooERE5qMgIZ+bzuonRzFu+lbe+Xhy0YyugRESkSil1Yrn5/J54vR4+Gr+cKfM3BuW4CigRETmkTq3qc9FxmQA89e6vbNgS+Id4IwJ+BD8ZY0YBo4AUwAI3WGsnlW0bBnwP5Jf7yKPW2geCXqiISC118uBW2DXb+WXeRh5+YzqPXzOI2OjAxUhIBJQx5lTgZuAoYAlwIfCFMaa1tXYL0B34wFp7lotliojUah6Ph2vO7Mqa7F2szd7NCx/P47qzuwfseKFyia8R8LC1dpG1tsRa+zpQDHQq294DmONadSIiAkBcTCS3XdiLqEgf42auY9zMtQE7VtB6UMaYKKBeJZtKrbXPV9h3EJAALCxr6g6kGmOuBDzA+8Cd1trQWVlLRKSWaJaWxN9O6cQz/5nDPz+aR+8OjUiIjaz24wTzEl9/YHwl7cXl6zDGdOR/AbTJGBMBrAc+AV4HGgMfAKU4lwVFRCTIjuzdjJUbd/Kr3RKwYwQtoKy1E3B6PwdljDkeeAsYba19rOxzRcDwcrstN8Y8BDyKAkpExBUej4crTukc0GOExCAJODCK70HgImvtR+XamwDXAbdba/eVNUcBe4NfpYiIBEtIBJQx5i/Aw8Awa+20CptzgHOBPGPM/UAGcCfwWnCrFBGRYAqJgAJuBaKBH40x5dvPstZ+YYwZAfwDJ6zygJeAJ4NepYiIBE1IBJS1tsqB9NbaOcCQ4FQjIiKhIFSegxIREfkNBZSIiIQkBZSIiISkkLgHFWA+gOzsbLfrEBGRCsr9v9lXcVttCKhGAOeee67bdYiIyME1AlaUb6gNATUDGAhk4UyrJCIiocOHE04zKm7wlJaWBr8cERGRQ9AgCRERCUkKKBERCUkKKBERCUkKKBERCUkKKBERCUkKKBERCUkKKBERCUkKKBERCUm1YSYJvxhjugAvAJ2BlcAl1trfPdlsjGkGvAr0BTYDV1trvwpmrW46jN/TMOB7IL9c86PW2geCUmiIMMb0Br6w1jY4yPZafT7t58fvqVafT8aYo4DRQBuc82SMtfbFSvarUeeTAgowxkQBn+Gs2jsIOA34zhjT3Fq7q8Lu7wFTgOOAAcCnxpiu1tqVwazZDYf5e+oOfGCtPSvIZYYEY4wHuBR4/BC71trzCQ7r91RrzydjTFPgI+BCnP/+egDfGmNWW2u/rbB7jTqfdInPMQSItNb+w1pbaK19D1gInFl+J2NMW6AncLe1dp+1dhzwOc5/YLXBEPz4PZXpAcwJZnEh5j7gSuDBg+2g8wnw4/dUpjafTy2Ad6y1n1hrS8quWEwAjii/U008nxRQjkxgcYW2JUCnSvZba63NPcR+NZW/vydw/uI90hizxhiz1hgzxhgTHfAKQ8cL1toewMwq9qnt5xP493uCWnw+WWsnWWv/tv+9MaYezgTYv1bYtcadTwooRwKQV6EtD4j7g/vVVH79/MaYCGA98AnQHhgGHAnUivsFANbajX7sVtvPJ79+Tzqf/scYUwenVzQN53JfeTXufNI9KEcuEFuhLQ7Y8wf3q6n8+vmttUXA8HJNy40xDwGPAjcHtMLwUtvPJ7/ofHKUXcL7DFgEnGutLamwS407n9SDciwCTIW2dmXtFfdrZoyJPcR+NZVfvydjTBNjzONlgyr2iwL2Bri+cFPbzye/6HwCY8wgnF7Tp8Dp1trKfvYadz6pB+UYD3iMMdcBz+GMTuuMc0nhAGutNcbMBR4yxtwG9AdOAvoFuV63+PV7AnKAc4E8Y8z9QAZwJ/BaEGsNeTqf/FarzydjTCvgC+AOa+2zB9uvJp5P6kEB1tp9wAic/+FuA+4ATrbWbjHGnGuMKd9FPg3nOvhm4BXgUmvtgmDX7AZ/f09lf92NwBmKngP8BHwAPOlK4SFE55N/dD79xkggEXjEGLOn3OvRmn4+aUVdEREJSepBiYhISFJAiYhISFJAiYhISFJAiYhISFJAiYhISFJAiYhISNKDuiLVxBjzBs6SCAdzH84s1OOBRGttUKagMcb4gF+AC6y1S6vYzwtMBc631tpg1CZSFfWgRKrPKKBR2WtIWVvvcm2PA5PLvs6t5POBcg0wt6pwAiib2+1+nAUpRVynB3VFAsAY0xGYD2RYa1e7WEcMsBYY5u+MAsaYFTgzEEwIZG0ih6JLfCJBZIwZQrlLfMaYUuBs4DaciXhnAucBNwHnA7uA26y1b5V9PhF4AjgdKAXGAaOqWLbiLGBH+XAyxtwFXA6k4qzvdbu19utyn/kEpzc4oRp+ZJE/TJf4RNw3GrgW6As0A2bjBFMv4GPgRWNMQtm+L+EE2dHAYJyQ+rZszaTKHAd8s/+NMeaUsmOdhzPT9ZfAB8aYpHKf+QZncUD9ASuuUkCJuO95a+14a+0cnFmr9+D0aizOhKixQIYxpiVOj+gca+2Msl7R+ThLgh9zkO/dE1hY7n0LoABYU3bp8X7gVKCw3D6LcBa/a1ctP53IH6S/kETct7zc13nAamvt/pvD+9f9iQaal31tjfnNslxxOL2qLyr53g2BreXev40z0nClMWYWzuqsr1tr88vtk1P2b4PD/DlEqpV6UCLuK6zwvuJKqftFlO3bDeha7tUWeP0gnykBPPvfWGu3AD1welyTgYuAeWWDOvbb//+FYr9/ApEAUECJhI/FQCQQb61dbq1dDmQBY3BCqjLZOIMhADDGnApcYa39zlo7CqfntRs4ttxnUst9VsQ1usQnEibKVkz9HHjTGDMS2AI8hDO4YslBPjYL6FLuvQ8YY4zZhDNisC+QVvb1fl2A7fz20qNI0KkHJRJeLsQJk0+BGUAd4Chr7Y6D7P8lzmg/AKy1HwD34PS6lgIPAldZa8eV+8wg4BtrrS7xiav0oK5IDWaMiQNWA8dYa2f7sb8XWIMzUnBSgMsTqZJ6UCI1mLU2D6e3NNLPj5wErFQ4SShQQInUfE8BnU2FsekVlfWe7gD+FpSqRA5Bl/hERCQkqQclIiIhSQElIiIhSQElIiIhSQElIiIhSQElIiIh6f8Bs9leVk2lNC4AAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "def plot_position(results, **options):\n",
    "    plot(results.y, **options)\n",
    "    decorate(xlabel='Time (s)',\n",
    "             ylabel='Position (m)')\n",
    "    \n",
    "plot_position(results)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can use `min` to find the lowest point:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "-25.0 meter"
      ],
      "text/latex": [
       "$-25.0\\ \\mathrm{meter}$"
      ],
      "text/plain": [
       "-25.0 <Unit('meter')>"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "min(results.y)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Here's velocity as a function of time:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAagAAAEYCAYAAAAJeGK1AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjAsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+17YcXAAAgAElEQVR4nO3dd3xUVf7/8dfMpPcGBBJAbAcVRVAQUbEBNiyIa8NCs/1cu2Jd24roAq7rul9FxYINxV5QUQSxoaCC/SgoQhISUoCQAqTM7487YIwhDJjJnUzez8cjDzN37sy8k8eVT06553j8fj8iIiLhxut2ABERkaaoQImISFhSgRIRkbCkAiUiImEpyu0AoWaMiQX6AauAOpfjiIjIH/mAzsBCa+3Ghk9EfIHCKU4fuh1CRESadQjwUcMD7aFArQJ4+umnyc7OdjuLiIg0UFhYyMiRIyHwb3VD7aFA1QFkZ2eTm5vrdhYREWnan4ZgNElCRETCkgqUiIiEJRUoEREJSypQIiISltrMJAljTG/gQWAf4BdgjLV2obupRERaVn19PXl5eVRWVrodpUVER0fTsWNHUlJStvu1baJAGWNigFeBe4FBwAhgtjGmu7W23NVwIiItqKSkBI/HgzEGr7dtd3L5/X6qq6vJz88H2O4i1VZ++sOAaGvtvdbaGmvtDOA74LRQf7Df72dj0XLqazZu+2QRkb9o7dq1dOrUqc0XJwCPx0NCQgI5OTmsXr16u1/fJlpQwJ7AD42O/QjsHeoPrlr6BUXPT8SXkkXmEWeTuOdBeDyeUH+siLRTdXV1REdHux2jRcXHx1NTU7Pdr2srJToJqGp0rApICPUHx3belZhOPagrL2H1K/+mYPqNbChYGuqPFZF2LNL+CN7Rn6etFKhKIL7RsQSgItQfHJWURs6Yu8k69iJ8ialszLMUPHYtq1/7L7XlpaH+eBGRdqutFKjvAdPoWM/A8ZDzeH2k9BlM14vuJ/XAk8AXRcU381j54CWs+XCmxqdEREKgrYxBzQU8xpgrgPtxZvHtA7zcmiG8sQlkHnE2KX2GUDpnOlX2M9bMn0H54vc0PiUi0sLaRAvKWrsJOAanMJUBNwInWWuL3cgTnZ5N9inj6TzyVmI67qTxKRFpd6666iomTJiw5XFdXR0DBw7ks88+a7HPaCstKKy13wIHu52jofid9iZn7L9Yv+R9yuY9s2V8Kmnvw8g4fCRRyRluRxSRNm7VjAlUL/uy1T4vfpe+dD79xm2eN3z4cK677jquu+46fD4fH3/8MXFxcfTv37/FsrSJFlQ4c8anhtCt8fjUA39nzUcvaHxKRCLSwIED8Xq9W1pMr7/+Oscff3yLDnO0mRZUuPPGJf55fOqDZ1n/1btkHHkOiXsM1PiUiGy3YFozbvB6vZxwwgm8/vrr9OnTh/fee4+XXnqpZT+jRd9N/jQ+VVtewuqX76Fg+k1s1PiUiESQ4cOH89577zF79mx23313evTo0aLvrwIVIpvHp7KOvRBvQgob834k/7FrWf36f6ldX+Z2PBGRv2yXXXahe/fu3HvvvZx44okt/v4qUCH0h/GpASeCN4qKr+ex8oFLND4lIhFh+PDhFBcXc+yxx7b4e6tAtQJvXCKZR55D1wvuJWH3/vhrNrDmg2fJm3oZFd9/jN/vdzuiiMgOGTlyJN9++y1paWkt/t4qUK0oOqMz2X+7NjA+1Z3adcWsfvkeVj35DzauWuZ2PBGRsKIC5QJnfGoSWcdcgDchhQ0rfyD/0WtZ/fr9Gp8SEQlQgXKJx+sjpe/QwPjUCeD1UfH1XGd86uMXNT4lIu2eCpTLnPGpcwPjU/2c8al5zzjjUz98ovEpEWm3VKDChDM+dR2dz7yFmI7dnPGpl6YExqd+cTueiLSiSPvDdEd/HhWoMBPfYx9yxk4m6+jzG4xPjaf4jf9RW7HG7XgiEmI+n2+Hdp8NZ9XV1Tu0S7AKVBjyeH2k7HeUs//UAceD18v6Je+z8oG/s/aTl6iv3eR2RBEJkbS0NIqKiqivr3c7yl/m9/upqqoiPz+fjh07bvfrtRZfGPPFJZI5eBTJfYZSNucJqn5eRNncpynfvL6fGaD1/UQiTFZWFnl5eVhr3Y7SIqKjo+nUqRMpKSnb/VoVqDYgJrML2adeT9UvSyh97zFqiley+sXJxHXbi8who4nNbtn1r0TEPV6vl27durkdIyyoi68NSdi5N7njppB51Hl445PZsOI78qddQ/GbD1BbsdbteCIiLUoFqo3xeH2k7n80XS+6n5T+w5zxqcXvOeNTn76CvzayBldFpP1SgWqjfPFJZA0ZTe5595Cw6374N1VT9v6TrHzocirtZxE3TVVE2h8VqDYuJiuX7NNuIPv0m4jOyqV2TSFFL/yLVc/cxsai5W7HExHZYSpQESJhlz7O+NTQsXjjk9iw/BtnfOqtqdRVrnM7nojIdlOBiiAeXxSp/Y51xqf2d/ZmWf/lbGd86rPX8ddpfEpE2g4VqAjki08m66ix5J53D/E770v9xirK3nucvIeupOrnLzQ+JSJtggpUBIvp0JXs028i+9QbiM7oQk1ZAYXP30nhjDvYVLzS7XgiIs1SgYpwHo+HhN32I/f8e8gYPApvbALVvywm7+ErKXlnGnXV692OKCLSJBWodsLjiybtgOPpetH9JPcdCkD5olmsfODvrFs4C399ncsJRUT+SAWqnfElptLhmAvIGTuJuJ32pr66gtLZ08h7+EqqflnsdjwRkS1UoNqp2E470fnMW+h0ynii0jpRU5JH4bP/pPC5O9lUWuB2PBERLRbbnnk8HhLNASTs0pd1C99kzUcvULX0C6p+WUJqv2NJP/gUvHGJbscUkXZKLSjBExVN2oEn0fWi/5Lc+wior2PdZ6+x4oG/U/7lbI1PiYgrVKBki6ikdDoMu5icMf8iruse1FeVU/LWVPKnjaf6t+/cjici7YwKlPxJbOed6Xz2P+k4/Ep8KVlsWr2cVU/dTNGLk6lZu9rteCLSTmgMSprk8XhI2vMgEnbbn3ULXmXtJy9T+eOnVP28iNQBJ5A2cDjemHi3Y4pIBFMLSprljY4l/ZBT6XrRf0na6xD8dTWs/fhFVj5wKeu/mYffX+92RBGJUG2iBWWMmQ6cCtQ2OLyPtfYXlyK1O1EpWXQ86XJS9j+a0tmPsnHVMopf+y/li94mc+gY4nJ2dzuiiESYNlGggL7ASdbat90O0t7F5faky+i7qPjmA8ref4qNBT9T8Pj1JPUaRMbhZxGVkul2RBGJEGHfxWeMiQd6AlrmIEx4PF6S9zmcrhfdT9rAk8EXRcW381n54CWs+egF6ms2uh1RRCJAWLSgjDExQEYTT/mBnXG69h42xgwAVgI3W2vfaMWI0gRvbDwZh48ked8jKZ0znSr7GWs+eJb1i+eQMfgcEs0APB6P2zFFpI0KlxbUQGBVE1/5QDLwIXAb0AWYADxvjOntTlRpLDo9m+xTxtN55K3EdOxG7brVrH5xMquevkXbzovIDguLFpS1dh7Q3J/asxt8/6IxZjRwArAklLlk+8TvtDc5Yyez/qt3KfvgWTb89h35064huc9gMg49A19CitsRRaQNCZcW1FYZY443xpzb6HAMsMGNPNI8j9dHyn5HO9vO9/vjtvPrFr6Jv652G+8gIuIIixbUNviA/xhjfgC+AE7D6RIc52oqaZYvPpmsoWNJ6TOU0ncfo/rXJZTOfpTyL2eTOWQ0CTvv63ZEEQlzYd+Csta+AtwIPAuUA1cBw6y1K1wNJkGJ6dCV7DP+Qae/XUdUevbv23o8P5GaMm3rISJb1xZaUFhr/wf8z+0csmM8Hg+Ju/cjYed9A9t6zKTq50VULVtMav/jnG09YhPcjikiYSbsW1ASOX7f1uN+kvY5AuprWbfgVVY+cAnli+do2SQR+QMVKGl1UUnpdDz+YrqMvpvYHENd5VpK3vw/8h+9jg15P7odT0TChAqUuCauy650OXcCHU68DF9yBpsKl1HwxI2sfvU/1JaXuh1PRFymAiWu8ng8JPcaRNcL7yPtoBF4fNGBZZMuZc3HL1Jfu8ntiCLiEhUoCQvemHgyDjuT3AvuJcEcgL9mA2vmPUPe1MuptJ/h9/vdjigirUwFSsLKlmWTzryF6A5dqV1bRNEL/6Lw2dvZVLzS7Xgi0opUoCQsxffYh9xxU8gcOhZvXBLVv35N3sNXUjJ7GnXVFW7HE5FWoAIlYcvj9ZHa71i6XvRfUvoeBUD5wlmsfODvlH/xDv76OpcTikgoqUBJ2PMlpJB1zPnkjJ1EXLe9qK9eT8nbD5E/bTzVK75zO56IhIgKlLQZsZ12ovNZt9Hx5KuJSsli0+rlrHryZopemkLtumK344lIC2sTSx2JbObxeEja40ASdu3LugWvsvaTl6n84ROqfl5E2sCTSR1wAt7oWLdjikgLUAtK2iRvdCzph5xK1wvvI3HPg/DXbmLN/BnOtPQfF2haukgECKoFZYzZGzgG2B/oCNQBhcBC4A1r7dKQJRRpRlRqBzoNv5LqvkdROnsam1b/RtGLk4jfaW8yh44hpkM3tyOKyA5qtgVljBlkjJkLLAKOB9YAnwQebwDOAr43xrxrjBkU6rAiWxPffS9yxk4i86jznGnpy78h7+GrNC1dpA3bagvKGPMosBdwPzDcWrt2K+elAGcA9xpjvrbWjgpFUJFt8Xh9pO5/NEl7HsSa+TMo/3I25QtnUfHdR2QcdibJvY/A4/W5HVNEgtRcF9+b1tox23oDa205MBWYaow5pcWSiewgX0IyWUefR3KfIZTOnsaGFd9TMutByr94h6yjxhHXtafbEUUkCFvt4rPWvri9b2atfeGvxRFpOc609NvpOPxKfMmZbCr6lYLpWi1dpK0IdpJEAnAt8JS19mdjzFRgJPA5MNJauyqEGUV2mMfjIWnPg0jYdT/Wfvoy6z59lYpv51NpPyftoBGkHXA8nqhot2OKSBOCnWb+H5wJETHGmBOBc4ErgGrgvhBlE2kx3pg4Mg49g9wL/9NgtfSnWfnQ5VT+vMjteCLShGAL1InAGdba74C/Ae9aax8GrgGGhiqcSEuLTutE9injyT7zZqKzcqldU0jR8xNZNWMCNWUFbscTkQaCLVDxQJExxgscBbwdOO7HuSdKpE1J6NHbWS19yGg8sQlUL/uSlVOvoPT9J6nfVO12PBEh+KWOFuKMQRUD6cDLxpguwD+BBSHKJhJSHl8Uqf2HkbjnwZTNfZqKr99n3aevUPHNfDKPPIfEvQ7G4/G4HVOk3Qq2BfV3YCBwGfD/rLUFwPWAAS4NUTaRVhGVlEbH4y+my6iJxHbelbqKMla/ei+rnvwHG4uWux1PpN1q7kbdgcACa229tfZ7YN9Gp9xgrV0f0nQirSguZ3e6jJ7I+iXvUzb3aTas/IH8adeQ0mcI6YedgS8+2e2IIu1Kc118kwFjjPkQmA3MbrjmnoqTRCKPx0vKvoNJ7Hkga+Y/R/mityj/8h0qfviYjEPPJLnPYK1GIdJKmrtRdyDQA3gC6AW8bYz51RjzkDHmFGNMemuFFGltvrhEsoaOIXfcFOK696K+usLZJPHRa9mw8ke344m0C57t2ZbAGNMDZ1r5EOAwYBnOlPObQpKuBRhjdgJ+nTNnDrm5uW7HkTbI7/dT+eMCSt97nLryEgCSeg0i44iziUrOcDmdSNuWl5fHkUceCdDDWru84XPbtWGhtfZXfl93zwv0wylWIhGr4SaJaz956ffVKH76nPRDTiW137F4fFqNQqSlBV2gjDGH4axu3ni70qqWDCQSrrzRsWQcegbJ+xxO6XuPU/XTQsrmTGf94jlkHjWWhB693Y4oElGCXYvvXuASYAXOPlAN+YF7WjiXSNiKTs8m+2/XUbXsK0pnT6OmNJ/CZ24nsecAMgePIiq1g9sRRSJCsC2oc4Ax1tonQhlGpC1J2KUP8ef9m3Wfv86aj16g8scFVC39krSDRpA64AS8UTFuRxRp04K9UbcKZ+VyEWnAExVN2sCT6XrhfSTueRD+2k2s+eBZ8h66gqqfv3A7nkibFmyBugOYHJjFJyKNRKVk0Wn4lXQeeeuWRWgLn7+TwufupGZNodvxRNqkYLv4fgDuBJYaY/70pLW2xe5cNMZcARxqrT2pwbFuwDRgALAauMRaO6ulPlOkpcTvtDe546ZQ/sXblM1/jqqlX1D969ekDjiRtINOxhvdeI6RiGxNsAXqIZxFYR8jRLP2jDFJwC3AVcBrjZ6eAXwKHAccDLxijNnXWvtLKLKI/BW/L0J7EGXvP0XFN/NY+/ELVHwzj8who0kwB2gRWpEgBFugugLHhLggvImzWvpUoPPmg8aY3YH9gSHW2k3A+8aY14CxwI0hzCPyl0QlpdPxhEtI6TOEknceYVPRrxS9OIn4Hr3JHDqGmCzdOC7SnGAL1LvAIGCHC5QxJgZo6rZ7v7W2CGdDxAJjzK00KFDAnsAKa21lg2M/Av13NItIa4rr2pOcMXez/qt3KZv3LNW/LiHv4atIPWAY6Qefgjcm3u2IImEp2AL1GXC/MWYEsBSoafiktXZ8EO8xEJjbxPE6ICqwhUdTkvhzt2IVkBDEZ4qEBY/XR8p+R5O4x0DK5j7N+sVznL2nvv2QzCGjSOx5oLr9RBoJtkANwdm0MIk/b7sR1GJ+1tp5wI78H1iJs6NvQwlAxQ68l4irfAkpdDjuIpL3HUzpOw+zcdUyVr80hfge+5A5dKy6/UQaCKpAWWsPD3WQZnwPdDPGxFtrN+/F3TNwXKRNisvZjS6jJrJ+8RzK5j1N9a9fq9tPpJGt3gdljLnFGBP0/yXGmGRjzO0tE+t31loLLAEmGGNijTGHAycCz7T0Z4m0Jo/XR0rfoXS98L8k7zsY6utY9+krrHzwMip++ITt2WlAJBI114JaB3xnjHkBeMlau6DxCcYYD84Mu7OAk4F/hyQljMCZ6r4aKAHGWmu/DdFnibQqdfuJNK3Z/aCMMbnAeGAUUItzw24JzlhSB5zVzT3A48Aka+2K0MbdftoPStoSf33dlm6/+uoK8Eap208i2g7vB2WtzQMuNcZcj7NB4X5AJ6AeZ2bfbcBca+3Glo8t0v5s7vZL7DlAs/2k3Qt2kkQlzo20b4Y2jojANrr9jhpHTGaO2xFFQi7YxWJFxAWbZ/tlHXMB3vgkZ7bfQ1dSNvdp6mvUcSGRTQVKJMz9ebZfLWs/eYm8qZdRaT/XbD+JWCpQIm3E5m6/LqMmEtOpB7Xriil64W6Knp+oLT0kIgVVoAIz4UQkDMTl7E7OmLvJHDoWT2wCVUu/IO+hK1jz4Uzqaze5HU+kxQTbglpqjPnIGHOhMSYzpIlEZJs8Xh+p/Y6l64X3kdRrkLOT7/wZzk6+y75yO55Iiwi2QO0MvAFcBBQYY143xpy+PStNiEjLi0pKp+OJl9H5rNt+38l3xh0UvTiZ2vJSt+OJ/CVBFShr7Qpr7V3W2t4490ItAa4HiowxTxhjBocypIg0L757L3LHTSbjiLPxRMdS+eOnrHzwUtYueBV/Xa3b8UR2yI5MksgDluHsDRWFs7r5dGOMNcYc2JLhRCR4Hl80aQeeRNcL7yOx5wD8NRsomzOdvGlXU73iO7fjiWy3YCdJJBpjzgzsZFsI3IqzaWC/QKsqF2evp+dCFVREghOVkkWnEdeQffpNRKVnU1O8klVP3szqV/9DbcVat+OJBC3Y/aBWA5uAl4CjA3s7bWGtrTfGzAYOadl4IrKjEnbpQ+75/2bdJ6+w9pOXqPh2PlVLvyDjsJEk9x2Cx6O7TCS8BVugRgGvNbXmnjGmo7V2tbX2JZwCJiJhwhsVQ/qgU0naexAlbz9C9S9fUfL2Q6z/ei5Zx5xPbPbObkcU2apg/4SaAaQ0PmiM6YYzFiUiYSw6PZvs02+k48lX40vKYGPBz+Q/ei0lsx+lfmOV2/FEmrTVFpQx5gxgeOChB3jEGNO4BdUdKAtRNhFpQR6Ph6Q9DiRh530pmz+D8oWzKF/4JpU/fErm0NFaKV3CTnMtqHeBCqAy8Lg68P3mrwqcLTdOCmVAEWlZ3th4soaMJmfMv4jtsht1FWWsfmkKhTPu0JJJEla22oKy1pYAYwCMMctxNiRUX4BIhIjN7kGXUXey/qv3KJv7FNW/LCZv6uWkHTSCtANPwhMV7XZEaeea6+I7FnjXWlsDLAQOM8Y0ea61dlZo4olIKHk8XmeDRHMApXOmU/HNPNbMn0HFt/PJOvo84nvs43ZEaceam8X3BpCNM8X8jWbO8wO+lgwlIq3Ll5hKxxMuIbn34ZS89RA1pfmseuY2kvY6hIzB5xKVlO52RGmHmuvi8zb1vYhErvjuvcg9bwprF7zO2o9mUvHdh1Qt/YL0w0aS0ncIHq/+FpXWE3ThMcaMMcac0uDx88aYs0MTS0Tc4vFFk37QyeRecC/xu/SlfmMVpe88TMETN7Kx8Fe340k7EuxSRzcCk/ljV943wL3GmMtDEUxE3BWd1ons026g04hr8CVvvndqPKVznqB+0wa340k7EGwL6gLgdGvtlrX2rLX/BM4CLgtFMBFxn8fjIbHnALpecB8p/Y4DYN2C15zt5n9e5HI6iXTBFqh04Lcmji8DOrVcHBEJR97YeLKGjiFn1ERisnemtryEoucnUvTiJO07JSETbIFaAFxnjNkyqcIY4wOuwpmCLiLtQGyXXckZfReZQ0bjiYmj8scFrJx6GesWzsJfX+d2PIkwwS4WezUwB1hhjPkaZ2r53oHXHxOibCIShjxeH6n9h5HYcwAl70yj6qfPKZ09jYpv5pF17IVagFZaTLA76i4BDDABWAr8ANwB7Gat/Sp08UQkXEWlZJH9t2vpdMp4fMmZbFy1jPxHr6X03ceo31TtdjyJAEFPM7fWlgLvALOB+cA8a+36UAUTkbYh0RxA1wv+Q0r/YQCs+/wNVk69nMqf1Psvf01QXXzGmCRgGnAKUIOzunmUMeZdYIS1trK514tIZNu8AG1yr0MpnvUgmwqXUTTzLhJ270/WUeOISsl0O6K0QcG2oO7BGXM6EIgH4gLfdwHuDk00EWlrYjvvTM7oiWQOHYsnJo6qnz5n5dRLNYlCdkiwkyROBoZbaz9vcOxzY8zFwAvA31s8mYi0SR6vj9R+x5JoDqBk9jSq7GfOJIpv59PhuIuI6djd7YjSRgTbgvICJU0cLwOSWi6OiESKqJRMsk8Z70yiCOzimzftGsrmPk19TeO9T0X+LNgCNR+41RgTs/mAMSYWuAX4MBTBRCQyOJMo7iVlv6Ohvp61n7xE3sNXUr38G7ejSZjbnvugPgJWGmMWB471BjYAR4cimIhEDm9cIllHn0dSr0MonvUgNcUrWfX0rSTtcwSZR56DLyHZ7YgShoIqUNbapcaYPYCRwJ4427/PBJ621rboDQ/GmCuAQ621JzU4dgTOFvQNP+vuwHqAItJGxOX2JHfsJNZ++iprPppJxdfvU7V0EVlDx5C458F4PB63I0oYCbYFhbV2DXB/qIIEprLfgrN80muNnu4LzLTWnh6qzxeR1uHxRZN+8Ckk7nEgJbMeZMOK71n9yr3Ef/MBWUefT3RaR7cjSphobsv3hThLGm2TtbZ/C2R5EygGpgKdGz23H7D4T68QkTYrJjOHzmfdxvrF71P2/nSql31F3kOXk37o6aT2O06bI8o2t3xvMYEJFhlNPOW31hYBZ1hrC4wxt/LnAtUX6GCMuQjnJuHngJustZoKJNKGeTxeUvoMJmG3/Sh99zEqv/+YsveeoOLbj+hwnNb1a++a2/L9thb+rIHA3CaO1wFR1tqCpl4UWEE9D3gZeAzn5uCZOK278S2cUURcEJWUTqfhV1LV61CK336ITYXOun6pBxxP+qDT8EbHuh1RXBD0GJQx5lTgGmA3nBbN/wMKrbWTg3m9tXYeTutnu1hra4EjGxxaaoyZgLOChQqUSARJ2G0/una/l7J5z1K+cBbrFrxKpf2MDsddRHz3Xm7Hk1YW7Jbvo4D/A14CNt8L9SNwszHmutBE2/LZOcaYyQ3vwQpk0J7TIhHIG+Nsjthl1J1Ed+hK7ZpCVj11C8WzHqR+g5b9bE+CvVH3KuAia+1EnC45rLWPAKNxtoMPpVKc6e03GWOijDG7ATfhdPeJSISKy9md3LGTSB90GnijWP/Vu1olvZ0JtkDtAixq4vhiILvl4vyZtXYDzqaIg3CK1XycMah7Qvm5IuI+jy+a9ENOJXfcJGJzdqeuooyimXdR9PI91FWuczuehFiwY1AWGAw83Oj4qThdfS3GWntrE8cWA4e15OeISNsR06EbXc65g/JFb1E27xkqv/+Y6l+XkDlkDEm9BukG3wgVbIG6AXjBGLN/4DUXGmN2BYbh7BElIhJSm7eaT9i9HyWzHqT6168pfu0+Kr77kA7HXEBUage3I0oLC3bL97eA/kAs8C0wBGeSwgBrbeNVH0REQiY6rRPZZ9xMh2EX441LpHrZV6x86HLWLXoLv7/e7XjSgppbSeJY4G1rbT2AtfY7YFQr5RIR2SqPx0Ny7yOI36UPpe9Mo/LHTyl95xEqv/+YrGMvJCYr1+2I0gKaa0G9ChQYY/5tjNm3tQKJiAQrKimdTiOuptOIa/AlprFh5Q/kPXIVaz5+EX9drdvx5C9qrkDlAHcCBwBfGmO+McZcbYzp0jrRRESCk9hzALkX/Ifk3kdCXS1r5j1D/mPXsbFoudvR5C/YaoGy1q621t5nrR0I7Aw8A5wN/GaMmW2MOcsYE99aQUVEmuOLT6LDsP9H5zNvISq1I5uKfiX/0fGUzX8Of12N2/FkBwQ7SWK5tXaitbY3zkaFn+PM7CsyxuiGWREJG/E99iH3/HtI2f8YqK9j7YfPk//otWxc9Yvb0WQ7BXuj7hbW2u+BycBE4GecVpWISNjwxsSTddQ4Op91O1Hp2Wxa/Rv5j11L2bxn8NeqNdVWBF2gjDGpxphzjTFvAoXA9Thr8+0SqnAiIn9FfPe9yB03hZT+w8DvZ+3HL5L36DVsKFjqdjQJQrM36hpjUoGTgL/hrCRRDswAbrXWakEsEQl73pg4soaMJqnngRS/cT81xfkRRoEAABD1SURBVCspePx60g48kbRDTsUbFbPtNxFXbLUFFWgpFQEPAJU4K0Z0sdZequIkIm1NXNee5IybQuoBJzitqU9eJn/aNWzI/8ntaLIVzbWgkoCLgZnW2vJWyiMiEjLe6FgyB59LYs8BFL/xP2pK8ih44kZSDxhG+qDTtTFimGluR91DWzOIiEhrics15IybzJr5z7FuwWusW/AaVT8tosOwi4nr2tPteBKw3bP4REQigTcqhswjzqbLuXcSnZVLTVkBBdNvouTdx6iv2eh2PEEFSkTaubic3cgdO5m0g0aAx0P552+Q/8hVbMizbkdr91SgRKTd80RFk3HYmeSMvovoDl2pKVtFwfSbKJv7lO6bcpEKlIhIQGznXcgdM4nUA08CYO0nL5P36Hg2FmoVCjeoQImINOCJinbGps65g+iMztQUryD/setY8+HzWiG9lalAiYg0wZnpN4WUfsdCfR1r5j9H/uM3sKl4pdvR2g0VKBGRrfBGx5I1dCydR95KVGoHNhUuI3/aNaxd8Cr++jq340U8FSgRkW2I32lvcs+7h+R9B+Ovq6FsznQKnryZmrJVbkeLaCpQIiJB8MYm0OG4i8g+7UZ8SelszPuRvEeuYt2it/D7692OF5FUoEREtkPCrn3JPf/fJPUahL9mI6XvPELhM7dTu67Y7WgRRwVKRGQ7+eKT6XjiZXQccTXehBSql3/DyoevZP2S9/H7/W7HixgqUCIiOyip54F0Pf9eEswB+DdWUfzG/yh64V/UVa5zO1pEUIESEfkLfImpdBpxDR1OuBRvbAJVP31O3sNXUrX0C7ejtXkqUCIif5HH4yF570PJPe8e4rrvRV3lWgqfu5Pit6ZSv2mD2/HaLBUoEZEWEpXagc4jbyXjyHPAF8X6L2c7myJqi/kdogIlItKCPB4vaQNOJGf03UR36OZs4/H49az5cKZu7t1OKlAiIiEQ22kncsbcTeoBx4O/njXzZ1Aw/SZq1hS6Ha3NUIESEQkRb1QMmYNH0XnkrfiSM9mY/xN5D19F+Vfvajp6EFSgRERCbPNSSYl7HYy/ZgMlsx6kaObdmo6+DSpQIiKtwBefRKeTrqDjiZc709F/Xkjew1dQ+fMit6OFrSi3A2xmjLkMuAzIBCxwlbX2w8Bz3YBpwABgNXCJtXaWW1lFRHZUUq9DiOvak9Wv38+G376l6PmJJPcZQubgUXhj4tyOF1bCogVljDkZGA8MA9KBB4A3jDEdAqfMAL7GKV7nATOMMTu7kVVE5K9ypqPfQsbgc53p6F+9S/60q9m4apnb0cJKWBQooDNwp7X2e2ttvbX2MaAO2NsYszuwP3CztXaTtfZ94DVgrIt5RUT+Eo/HS9oBJ5A75l/EdOxGTdkq8h+/wdlrSqujA63YxWeMiQEymnjKb639X6NzBwFJwHfAgcAKa21lg1N+BPqHKquISGuJ6didLqPvpmzOk5QvmkXZnOlU/7qEDsdfQlRSutvxXNWaLaiBwKomvvIbnmSM6QU8B9xkrS3CKVRVjd6rCkgIdWARkdbgjYoh66ixdDr1emd19F+WBNbz+9LtaK5qtRaUtXYe4GnuHGPMMOBJ4C5r7b8ChyuB+EanJgAVLZ1RRMRNibvtT+y4KRS/dh/Vy7+h8LkJpPQfRubhZ+GJinY7XqsLlzGozbP4ngXGWWvvbvDU90A3Y0zDItUzcFxEJKJEJWeQfebNZBx+Fnh9lH/+BvmPX8+mkjy3o7W6sChQxphTgTuBwdbaFxs+Z621wBJggjEm1hhzOHAi8EzrJxURCT2Px0vawOF0OWcCUWmd2FT0K/mPjqd88XvtagWKsChQwHVALDDHGFPR4GtY4PkRwB4490A9Aoy11n7rUlYRkVYRl7MbueMmb9levuTNB1j98hTqNlRu+8URICxu1LXW9t3G8yuBY1opjohI2PDGJtDxxMuI33lfSt5+iMofPmVj/s90POkK4rr2dDteSIVLC0pERJqRvPeh5I6bQmyX3agtL6HgyX+wZv7zEb2FhwqUiEgbEZ2eTZdz7iBt4HDw+1nz4XOseuoWatcVux0tJFSgRETaEI8viozDz6LzmTfjS0pnw8ofyHvk6ohcdFYFSkSkDYrvsQ+546YQv0tf6jdUUPT8RErnTMdfV+t2tBajAiUi0kb5ElPJPu16Mo44Gzxe1i14lYKnbqa2vMTtaC1CBUpEpA3zeLykHXgSXc7+J77kDDbmWfIeuZqqpV+4He0vU4ESEYkAcV17Ol1+O/ehvno9hc/dSen7T7bpWX4qUCIiEcKXkEL26TeQcfhIp8vv01ecWX7lpW5H2yEqUCIiEcRZJulkOp91G76kDGeW37SrqVr2ldvRtpsKlIhIBIrvtie54yYTv3Nv6qvKKZxxB2Vzn25TXX4qUCIiEcqXmEr26TeRfugZ4PGy9pOXWPX0bdSuL3M7WlBUoEREIpjH4yX94FPoPPIWfIlpbFjxHXmPXEXVL0vcjrZNKlAiIu1AfPde5IybQvxOeztdfs/+k7IPng3rLj8VKBGRdiIqKY3sM/5B+qDTAFj70QsUPvtP6irXuZysaSpQIiLtiMfrI/2QUwNdfqlUL/+G/EfHs7FgqdvR/kQFSkSkHYrfaW9yxkwiNmd3Z/uO6TdRvniO27H+QAVKRKSdikrJpMtZt5Pcdyj+uhpK3vw/imdNxV9b43Y0QAVKRKRd80RF0+GYC+gw7GI8vmjWfzWbgif/ERarT6hAiYgIyb2PoMu5E4hKyWJjwc/kP3oN1b9962omFSgREQEgtvMu5IydRHyPfairXMeqp29j7Wev4/f7XcmjAiUiIls4C87eFNhWvp6y9x5n9Sv/pn7ThlbPogIlIiJ/4PH6yDj8LDqNuAZPTByV339M/uPXU1NW0Ko5VKBERKRJiT0HkDP6bqIzc6gpXkH+o9dS+fOiVvt8FSgREdmqmKxcckbfRYI5gPqNVRQ9P5GyD2bg99eH/LNVoEREpFne2AQ6jbhmy0aIaz+aSeFzE6mrrgjt54b03UVEJCJ4PB7SBp5M9uk34Y1PonrZlxQ8fj2bSkM3LqUCJSIiQUvYuTc5YyYR07E7NWUFFDxxQ8haUipQIiKyXaLTOtLl3Akk7XUIvoRkPN7QlJKokLyriIhENG9MPB1Pujy0nxHSdxcREdlBKlAiIhKWVKBERCQsqUCJiEhYCptJEsaYy4DLgEzAAldZaz8MPHcE8C5Q3eAld1tr/9nqQUVEpFWERYEyxpwMjAeGAD8C5wJvGGN2tdYWA32Bmdba012MKSIirShcuvg6A3daa7+31tZbax8D6oC9A8/vByx2LZ2IiLS6VmtBGWNigIwmnvJba//X6NxBQBLwXeBQX6CDMeYiwAM8B9xkrd0YxEf7AAoLC3c0uoiIhEiDf5t9jZ9rzS6+gcDcJo7XNcxhjOnF7wWoyBgTBeQBLwOPAV2AmYAfp1twWzoDjBw58i+FFxGRkOoMLGt4wOPWVr5NMcYMA54E7rLW3t3MeafgTJLYJYj3jAX6AatwiqGIiIQPH05xWti4VywsJknAlll8dwCjrLUvNjieA1wB3GCt3RQ4HAMEtf9w4Af+qIXjiohIy1nW1MGwKFDGmFOBO4EjrLWfNXq6FBgJVBljbgd6ADcBj7ZuShERaU1hUaCA64BYYI4xpuHx0621bxhjjgHuxSlWVcBDwD2tnlJERFpNWI1BiYiIbBYu90GJiIj8gQqUiIiEJRUoEREJSypQIiISllSgREQkLIXLNHPXGWN6Aw8C+wC/AGOstQubOK8bMA0YAKwGLrHWzmrNrG7ajt+TtkgBjDH9gTestR238ny7vp42C+L31K6vJ2PMEOAuYDec62SStXZqE+dF1PWkAsWWhWxfxbnXahAwAphtjOlurS1vdPoM4FPgOOBg4BVjzL7W2l9aM7MbtvP31K63SDHGeICxwORtnNpuryfYrt9Tu72ejDFdgRdxtiF6FWd3h3eMMcutte80Oj2irid18TkOA6Kttfdaa2ustTNwVlI/reFJxpjdgf2Bm621m6y17wOv4fwP1h4cRhC/p4D2vkXKbcBFOMt3NUnXExDE7ymgPV9POwHPWGtfDmxHtBCYBxzU8KRIvJ5UoBx7Aj80OvYjv+9H1fC8Fdbaym2cF6mC/T2B8xfvYGPMb8aYFcaYSYGFe9uLB621+wGLmjmnvV9PENzvCdrx9WSt/dBae+Hmx8aYDOAQ4KtGp0bc9aQC5UjCWUKpoSogYQfPi1RB/fyNtkjZAzgCGAy0i/ECAGttQRCntffrKajfk66n3xljUnFaRZ/hdPc1FHHXk8agHJVAfKNjCUDFDp4XqYL6+a21tcCRDQ4tNcZMAO4muD282ov2fj0FRdeTI9CF9yrwPTDSWlvf6JSIu57UgnJ8D5hGx3oGjjc+r5sxJn4b50WqoH5PxpgcY8zkwKSKzYLeIqUdae/XU1B0PW3ZZfwz4BXgFGttUz97xF1PakE55gIeY8wVwP04s9P2welS2MJaa40xS4AJxpjrcXYJPhE4sJXzuiWo3xPaIiUoup6C1q6vJ2PMLsAbwI3W2v9u7bxIvJ7UggICGyEeg/MPbhlwI3CStbbYGDPSGNOwiTwCpx98NfAIMNZa+21rZ3ZDsL+nwF93x+BMRS8F5gMz0RYp6HoKjq6nP7gYSAYmGmMqGnzdHenXk7bbEBGRsKQWlIiIhCUVKBERCUsqUCIiEpZUoEREJCypQImISFhSgRIRkbCkG3VFWogx5nGcLRG25jacVajnAsnW2lZZgsYY4wM+Bs6x1v7UzHleYAFwtrXWtkY2keaoBSXSci4DOge+Dgsc69/g2GTgk8D3lU28PlQuBZY0V5wAAmu73Y6zIaWI63SjrkgIGGN6Ad8APay1y13MEQesAI4IdkUBY8wynBUI5oUym8i2qItPpBUZYw6jQRefMcYPnAFcj7MQ7yLgLOAa4GygHLjeWvtk4PXJwBTgFMAPvA9c1sy2FacDaxsWJ2PMP4DzgQ44+3vdYK19q8FrXsZpDc5rgR9ZZIepi0/EfXcBlwMDgG7AlziFqR/wEjDVGJMUOPchnEJ2FHAoTpF6J7BnUlOOA97e/MAYMzzwWWfhrHT9JjDTGJPS4DVv42wOqD9gxVUqUCLu+5+1dq61djHOqtUVOK0ai7MgajzQwxizM06L6Exr7cJAq+hsnC3Bj97Ke+8PfNfg8U7ARuC3QNfj7cDJQE2Dc77H2fyuZ4v8dCI7SH8hibhvaYPvq4Dl1trNg8Ob9/2JBboHvrfG/GFbrgScVtUbTbx3J6CkweOncGYa/mKM+QJnd9bHrLXVDc4pDfy343b+HCItSi0oEffVNHrceKfUzaIC5/YB9m3wtTvw2FZeUw94Nj+w1hYD++G0uD4BRgFfByZ1bLb534W6oH8CkRBQgRJpO34AooFEa+1Sa+1SYBUwCadINaUQZzIEAMaYk4ELrLWzrbWX4bS81gPHNnhNhwavFXGNuvhE2ojAjqmvAdONMRcDxcAEnMkVP27lZV8AvRs89gGTjDFFODMGBwDZge836w2s4Y9djyKtTi0okbblXJxi8gqwEEgFhlhr127l/DdxZvsBYK2dCdyC0+r6CbgD+Lu19v0GrxkEvG2tVRefuEo36opEMGNMArAcONpa+2UQ53uB33BmCn4Y4ngizVILSiSCWWurcFpLFwf5khOBX1ScJByoQIlEvn8D+5hGc9MbC7SebgQubJVUItugLj4REQlLakGJiEhYUoESEZGwpAIlIiJhSQVKRETCkgqUiIiEpf8PnnaIy5it5akAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "def plot_velocity(results):\n",
    "    plot(results.v, color='C1', label='v')\n",
    "        \n",
    "    decorate(xlabel='Time (s)',\n",
    "             ylabel='Velocity (m/s)')\n",
    "    \n",
    "plot_velocity(results)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Velocity when we reach the end of the cord."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "-23.876881009672466 meter/second"
      ],
      "text/latex": [
       "$-23.876881009672466\\ \\frac{\\mathrm{meter}}{\\mathrm{second}}$"
      ],
      "text/plain": [
       "-23.876881009672466 <Unit('meter / second')>"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "min(results.v)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Although we compute acceleration inside the slope function, we don't get acceleration as a result from `run_ode_solver`.\n",
    "\n",
    "We can approximate it by computing the numerical derivative of `v`:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "a = gradient(results.v)\n",
    "plot(a)\n",
    "decorate(xlabel='Time (s)',\n",
    "         ylabel='Acceleration (m/$s^2$)')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The maximum downward acceleration, as a factor of `g`"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "1.4537935759242928 dimensionless"
      ],
      "text/latex": [
       "$1.4537935759242928\\ dimensionless$"
      ],
      "text/plain": [
       "1.4537935759242928 <Unit('dimensionless')>"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "max_acceleration = max(abs(a)) * m/s**2 / params.g"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Using Equation (1) from [Heck, Uylings, and Kędzierska](http://iopscience.iop.org/article/10.1088/0031-9120/45/1/007), we can compute the peak acceleration due to interaction with the cord, neglecting drag."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "1.625 dimensionless"
      ],
      "text/latex": [
       "$1.625\\ dimensionless$"
      ],
      "text/plain": [
       "1.625 <Unit('dimensionless')>"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "def max_acceleration(system):\n",
    "    mu = system.mu\n",
    "    return 1 + mu * (4+mu) / 8\n",
    "\n",
    "max_acceleration(system)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "If you set `C_d=0`, the simulated acceleration approaches the theoretical result, although you might have to reduce `max_step` to get a good numerical estimate."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Sweeping cord weight\n",
    "\n",
    "Now let's see how velocity at the crossover point depends on the weight of the cord."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [],
   "source": [
    "def sweep_m_cord(m_cord_array, params):\n",
    "    sweep = SweepSeries()\n",
    "\n",
    "    for m_cord in m_cord_array:\n",
    "        system = make_system(Params(params, m_cord=m_cord))\n",
    "        results, details = run_ode_solver(system, slope_func1, events=event_func)\n",
    "        min_velocity = min(results.v) * m/s\n",
    "        sweep[m_cord.magnitude] = min_velocity\n",
    "        \n",
    "    return sweep"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>values</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>-21.43444396611346 meter ** 2 / second ** 2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>-21.778799793406385 meter ** 2 / second ** 2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>21</th>\n",
       "      <td>-22.1185904356283 meter ** 2 / second ** 2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>31</th>\n",
       "      <td>-22.453924142289296 meter ** 2 / second ** 2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>41</th>\n",
       "      <td>-22.78486198074548 meter ** 2 / second ** 2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>51</th>\n",
       "      <td>-23.111415158472745 meter ** 2 / second ** 2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>61</th>\n",
       "      <td>-23.4335416886762 meter ** 2 / second ** 2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>71</th>\n",
       "      <td>-23.751142173575644 meter ** 2 / second ** 2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>81</th>\n",
       "      <td>-24.064054490941942 meter ** 2 / second ** 2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>91</th>\n",
       "      <td>-24.372047155067598 meter ** 2 / second ** 2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>101</th>\n",
       "      <td>-24.67679574004737 meter ** 2 / second ** 2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>111</th>\n",
       "      <td>-24.97875199285987 meter ** 2 / second ** 2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>121</th>\n",
       "      <td>-25.27786764272998 meter ** 2 / second ** 2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>131</th>\n",
       "      <td>-25.57421210507495 meter ** 2 / second ** 2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>141</th>\n",
       "      <td>-25.867837825239334 meter ** 2 / second ** 2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>151</th>\n",
       "      <td>-26.158780104872434 meter ** 2 / second ** 2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>161</th>\n",
       "      <td>-26.44705675559671 meter ** 2 / second ** 2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>171</th>\n",
       "      <td>-26.732667571098236 meter ** 2 / second ** 2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>181</th>\n",
       "      <td>-27.0155936062971 meter ** 2 / second ** 2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>191</th>\n",
       "      <td>-27.295796249246642 meter ** 2 / second ** 2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>201</th>\n",
       "      <td>-27.57321606785513 meter ** 2 / second ** 2</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "1       -21.43444396611346 meter ** 2 / second ** 2\n",
       "11     -21.778799793406385 meter ** 2 / second ** 2\n",
       "21       -22.1185904356283 meter ** 2 / second ** 2\n",
       "31     -22.453924142289296 meter ** 2 / second ** 2\n",
       "41      -22.78486198074548 meter ** 2 / second ** 2\n",
       "51     -23.111415158472745 meter ** 2 / second ** 2\n",
       "61       -23.4335416886762 meter ** 2 / second ** 2\n",
       "71     -23.751142173575644 meter ** 2 / second ** 2\n",
       "81     -24.064054490941942 meter ** 2 / second ** 2\n",
       "91     -24.372047155067598 meter ** 2 / second ** 2\n",
       "101     -24.67679574004737 meter ** 2 / second ** 2\n",
       "111     -24.97875199285987 meter ** 2 / second ** 2\n",
       "121     -25.27786764272998 meter ** 2 / second ** 2\n",
       "131     -25.57421210507495 meter ** 2 / second ** 2\n",
       "141    -25.867837825239334 meter ** 2 / second ** 2\n",
       "151    -26.158780104872434 meter ** 2 / second ** 2\n",
       "161     -26.44705675559671 meter ** 2 / second ** 2\n",
       "171    -26.732667571098236 meter ** 2 / second ** 2\n",
       "181      -27.0155936062971 meter ** 2 / second ** 2\n",
       "191    -27.295796249246642 meter ** 2 / second ** 2\n",
       "201     -27.57321606785513 meter ** 2 / second ** 2\n",
       "dtype: object"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "m_cord_array = linspace(1, 201, 21) * kg\n",
    "sweep = sweep_m_cord(m_cord_array, params)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Here's what it looks like.  As expected, a heavier cord gets the jumper going faster.\n",
    "\n",
    "There's a hitch near 25 kg that seems to be due to numerical error."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot(sweep)\n",
    "\n",
    "decorate(xlabel='Mass of cord (kg)',\n",
    "         ylabel='Fastest downward velocity (m/s)')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Phase 2\n",
    "\n",
    "Once the jumper falls past the length of the cord, acceleration due to energy transfer from the cord stops abruptly.  As the cord stretches, it starts to exert a spring force.  So let's simulate this second phase."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "`spring_force` computes the force of the cord on the jumper:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [],
   "source": [
    "def spring_force(y, system):\n",
    "    \"\"\"Computes the force of the bungee cord on the jumper:\n",
    "    \n",
    "    y: height of the jumper\n",
    "    \n",
    "    Uses these variables from system:\n",
    "    y_attach: height of the attachment point\n",
    "    L: resting length of the cord\n",
    "    k: spring constant of the cord\n",
    "    \n",
    "    returns: force in N\n",
    "    \"\"\"\n",
    "    L, k = system.L, system.k\n",
    "    \n",
    "    distance_fallen = -y\n",
    "    extension = distance_fallen - L\n",
    "    f_spring = k * extension\n",
    "    return f_spring"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The spring force is 0 until the cord is fully extended.  When it is extended 1 m, the spring force is 40 N. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "0.0 newton"
      ],
      "text/latex": [
       "$0.0\\ \\mathrm{newton}$"
      ],
      "text/plain": [
       "0.0 <Unit('newton')>"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "spring_force(-25*m, system)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "40.0 newton"
      ],
      "text/latex": [
       "$40.0\\ \\mathrm{newton}$"
      ],
      "text/plain": [
       "40.0 <Unit('newton')>"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "spring_force(-26*m, system)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The slope function for Phase 2 includes the spring force, and drops the acceleration due to the cord."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [],
   "source": [
    "def slope_func2(state, t, system):\n",
    "    \"\"\"Compute derivatives of the state.\n",
    "    \n",
    "    state: position, velocity\n",
    "    t: time\n",
    "    system: System object containing g, rho,\n",
    "            C_d, area, and mass\n",
    "    \n",
    "    returns: derivatives of y and v\n",
    "    \"\"\"\n",
    "    y, v = state\n",
    "    M, g = system.M, system.g\n",
    "    \n",
    "    a_drag = drag_force(v, system) / M\n",
    "    a_spring = spring_force(y, system) / M\n",
    "    dvdt = -g + a_drag + a_spring\n",
    "    \n",
    "    return v, dvdt"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "I'll run Phase 1 again so we can get the final state."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>values</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>v_init</th>\n",
       "      <td>0.0 meter / second</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>g</th>\n",
       "      <td>9.8 meter / second ** 2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>M</th>\n",
       "      <td>75 kilogram</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>m_cord</th>\n",
       "      <td>75 kilogram</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>area</th>\n",
       "      <td>1 meter ** 2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>rho</th>\n",
       "      <td>1.2 kilogram / meter ** 3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>v_term</th>\n",
       "      <td>60.0 meter / second</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>L</th>\n",
       "      <td>25 meter</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>k</th>\n",
       "      <td>40.0 newton / meter</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>C_d</th>\n",
       "      <td>0.3402777777777778 dimensionless</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mu</th>\n",
       "      <td>1.0 dimensionless</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>init</th>\n",
       "      <td>y               0 meter\n",
       "v    0.0 meter / secon...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>t_end</th>\n",
       "      <td>10 second</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "v_init                                   0.0 meter / second\n",
       "g                                   9.8 meter / second ** 2\n",
       "M                                               75 kilogram\n",
       "m_cord                                          75 kilogram\n",
       "area                                           1 meter ** 2\n",
       "rho                               1.2 kilogram / meter ** 3\n",
       "v_term                                  60.0 meter / second\n",
       "L                                                  25 meter\n",
       "k                                       40.0 newton / meter\n",
       "C_d                        0.3402777777777778 dimensionless\n",
       "mu                                        1.0 dimensionless\n",
       "init      y               0 meter\n",
       "v    0.0 meter / secon...\n",
       "t_end                                             10 second\n",
       "dtype: object"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "system1 = make_system(params)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "A termination event occurred.\n"
     ]
    }
   ],
   "source": [
    "event_func.direction=-1\n",
    "results1, details1 = run_ode_solver(system1, slope_func1, events=event_func)\n",
    "print(details1.message)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now I need the final time, position, and velocity from Phase 1."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "2.2118255911654763"
      ]
     },
     "execution_count": 32,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "t_final = get_last_label(results1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>values</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>y</th>\n",
       "      <td>-25.0 meter</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>v</th>\n",
       "      <td>-23.876881009672466 meter / second</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "y                           -25.0 meter\n",
       "v    -23.876881009672466 meter / second\n",
       "Name: 2.2118255911654763, dtype: object"
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "init2 = results1.row[t_final]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "And that gives me the starting conditions for Phase 2."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>values</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>v_init</th>\n",
       "      <td>0.0 meter / second</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>g</th>\n",
       "      <td>9.8 meter / second ** 2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>M</th>\n",
       "      <td>75 kilogram</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>m_cord</th>\n",
       "      <td>75 kilogram</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>area</th>\n",
       "      <td>1 meter ** 2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>rho</th>\n",
       "      <td>1.2 kilogram / meter ** 3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>v_term</th>\n",
       "      <td>60.0 meter / second</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>L</th>\n",
       "      <td>25 meter</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>k</th>\n",
       "      <td>40.0 newton / meter</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>C_d</th>\n",
       "      <td>0.3402777777777778 dimensionless</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mu</th>\n",
       "      <td>1.0 dimensionless</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>init</th>\n",
       "      <td>y                           -25.0 meter\n",
       "v    -...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>t_end</th>\n",
       "      <td>10 second</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>t_0</th>\n",
       "      <td>2.21183</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "v_init                                   0.0 meter / second\n",
       "g                                   9.8 meter / second ** 2\n",
       "M                                               75 kilogram\n",
       "m_cord                                          75 kilogram\n",
       "area                                           1 meter ** 2\n",
       "rho                               1.2 kilogram / meter ** 3\n",
       "v_term                                  60.0 meter / second\n",
       "L                                                  25 meter\n",
       "k                                       40.0 newton / meter\n",
       "C_d                        0.3402777777777778 dimensionless\n",
       "mu                                        1.0 dimensionless\n",
       "init      y                           -25.0 meter\n",
       "v    -...\n",
       "t_end                                             10 second\n",
       "t_0                                                 2.21183\n",
       "dtype: object"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "system2 = System(system1, t_0=t_final, init=init2)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Here's how we run Phase 2, setting the direction of the event function so it doesn't stop the simulation immediately. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "A termination event occurred.\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "8.09952482949752"
      ]
     },
     "execution_count": 35,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "event_func.direction=+1\n",
    "results2, details2 = run_ode_solver(system2, slope_func2, events=event_func)\n",
    "print(details2.message)\n",
    "t_final = get_last_label(results2)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can plot the results on the same axes."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_position(results1, label='Phase 1')\n",
    "plot_position(results2, label='Phase 2')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "And get the lowest position from Phase 2."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "-77.04609533183535 meter"
      ],
      "text/latex": [
       "$-77.04609533183535\\ \\mathrm{meter}$"
      ],
      "text/plain": [
       "-77.04609533183535 <Unit('meter')>"
      ]
     },
     "execution_count": 37,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "min(results2.y)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "To see how big the effect of the cord is, I'll collect the previous code in a function."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [],
   "source": [
    "def simulate_system2(params):\n",
    "    \n",
    "    system1 = make_system(params)\n",
    "    event_func.direction=-1\n",
    "    results1, details1 = run_ode_solver(system1, slope_func1, events=event_func)\n",
    "\n",
    "    t_final = get_last_label(results1)\n",
    "    init2 = results1.row[t_final]\n",
    "    \n",
    "    system2 = System(system1, t_0=t_final, init=init2)\n",
    "    results2, details2 = run_ode_solver(system2, slope_func2, events=event_func)\n",
    "    t_final = get_last_label(results2)\n",
    "    return TimeFrame(pd.concat([results1, results2]))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now we can run both phases and get the results in a single `TimeFrame`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [],
   "source": [
    "results = simulate_system2(params);"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_position(results)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [],
   "source": [
    "params_no_cord = Params(params, m_cord=1*kg)\n",
    "results_no_cord = simulate_system2(params_no_cord);"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Saving figure to file figs/jump.png\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_position(results, label='m_cord = 75 kg')\n",
    "plot_position(results_no_cord, label='m_cord = 1 kg')\n",
    "\n",
    "savefig('figs/jump.png')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "-74.62920556283255 meter"
      ],
      "text/latex": [
       "$-74.62920556283255\\ \\mathrm{meter}$"
      ],
      "text/plain": [
       "-74.62920556283255 <Unit('meter')>"
      ]
     },
     "execution_count": 43,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "min(results_no_cord.y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "-2.4168897690027933 meter"
      ],
      "text/latex": [
       "$-2.4168897690027933\\ \\mathrm{meter}$"
      ],
      "text/plain": [
       "-2.4168897690027933 <Unit('meter')>"
      ]
     },
     "execution_count": 44,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "diff = min(results.y) - min(results_no_cord.y)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The difference is more than 2 meters, which could certainly be the difference between a successful bungee dunk and a bad day."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
